问答题
1. 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序: #include<stdio.h>
#define M 16
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",69},{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"CA013",91},{"GA012",64},
{"GA014",91},{"CA011",66},{"GA017",64},
{"GA018",64},{"GA016",72}};
int i;
proc(stu);
printf("The data after sorted: \n");
for(i=0;i<M;i++)
{
if(1%4==0)
//每行输出4个学生记录
printf("\n");
printf("%s%4d",stu[i].num ,stu[i].s);
}
printf("\n");
}