首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括
admin
2019-09-02
69
问题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
}STREC;
void fun(STREC a[])
{
}
main()
{STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};
int i;FILE*out:;
fun(s);
printf("The data after sorted:\n");
for(i=0;i<N;i++)
{ if((i)%4==0)printf("\n");
printf("%s %4d",s
.num,s
.s),
}
printf("\n");
out=fopen("out.dat","w");
for(i=0;i<N;i++)
{if((i)%4==0&&i) fprintf(out,"\n");
fprintf(out,"%4d",s
.s);}
fprintf(ouL,"\n");
fclose(ouL);}
选项
答案
STREC tmp; int i,j; fOr(i=0;i<N;i++) for(j=i+1;j<N;j++) if(a[i].s<a[j].s){ tmp=a[i]; a[i]=a[j]; a[j]=tmp;}
解析
(1)在fun函数中,通过循环对成绩记录进行排序。(2)首次查找到最大的记录,第二次循环查找第二大的记录,依次实现对成绩记录的排序。
转载请注明原文地址:https://kaotiyun.com/show/5dRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:123456789计算结
请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2223445666677899101010
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结
给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数:27638496,函数返回值为:26846。请在程序的下划线处填入正确的内容并把下
给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给numl和hum2分别输入27和81,则输出的最大公约数为27。请
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参P已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*
随机试题
简述德国法的基本特点。
一健康小儿体重18kg,身长100cm。其年龄约为
如图所示电路中,已知R1=R2=5Ω,/IS=1A,a、b两端的电压Uab等于()V。
案例六:张小姐是某外企的市场部经理,年轻有为,收入客观。最近张小姐打算给自己添置一辆新车,但她前不久刚刚买了房,手中资金有限,一次付清车款有一定困难。针对这种情况,张小姐的理财规划师建议其通过贷款方式购车。根据案例六,回答下列问题:( )不属于贷款
以下不属于教育目的的评价作用的一项是()。
关于行政处罚和行政许可行为,下列说法正确的是()。
微电子技术是微小型电子元器件和电路的研制、生产以及用它们实现电子系统功能的技术。()
设A=相似于对角阵.求:a及可逆阵P,使得P-1AP=,其中为对角阵;
下列选项可以做C++标识符的是()。
Neitheroftheyoungmenwhohadappliedforapositionintheuniversity______.
最新回复
(
0
)