题目内容:
学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include<stdi0.h>
#define M l6
typedef struct
{
char num[10];
int s;
}
STREC;
void proc(STREC a[])
{
int i,j;
STREC t:
for(i=1;i<M;i++)/*用冒泡法按从高到低
排序*/
for(j=0;j<M-1;j++)
if(a[j].s<a[j+1].s)/*按分数的高低排列学生
的记录,高分在
前*/
{t=a[j];a[j]=a[j+1];a[j+1]=t;)
)
void main()
{
STREC stu[M]={{"GA005",85),{"GA003",
76},
{"GA002",59),{"GA004",85},{"GA001",91),
{fIGA007”,72),{"GA008",64),("GA006",87),
{”GAOl5”,"t5},{"GA013",91),{"GA012",64},
{"GA014",91),{"GAO11",66},{"GA017",64),
{¨GA018",64),{¨GA016",72));
int i;
proc(stu);
printf("The data after sorted:\n");
for(i一0;i<M;i++)
{
if(i%4==O)
//每行输出4个学生记录
printf("\n");
printf("%S%4d",stu[i].mum,stu[i].s);
}
printf("\n");
}
参考答案:【答案仅供学习,请勿对照自行用药等】
答案解析: