设某班有n名学生,每个学生数据包括:姓名、学号及单科成绩,编程按成绩由高分到低分输出。要求:(1)结构体类型数组的输入;(2)按学生的成绩排序;(3)输出。
#include <stdio.h>
#define n 5
struct student{
int num;
char name[20];
float score;
};
void main()
{
struct student stu[n],temp;
int i,j;
int xh;
for(i=0;i<n;i++)
{printf("请输入第%d个学生的信息(学号、姓名、单科成绩):\n",i+1);
scanf("%d %s %f",&stu[i].num,&stu[i].name,&stu[i].score);
}
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(stu[j].score<stu[j+1].score)
{temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp;
}
printf("**************************************************\n");
printf("学号\t姓名\t单科成绩\n");
for(i=0;i<n;i++)
{printf("%d\t%s\t%.2f\n",stu[i].num,stu[i].name,stu[i].score);
}
}