输入10个学生的姓名和成绩,对10名学生的成绩进行排序,并将排序的结果输出

格式为:第一名 姓名 成绩
第二名 姓名 成绩
……
第十名 姓名 成绩
要求:1、main函数中输入姓名和成绩
2、由函数process进行处理,对成绩进行排序
3、排序的结果在main函数中输出

第1个回答  推荐于2016-08-04
#include <stdio.h>
struct student
{ char name[10];
int score;
};
struct student st[10];
void process()
{int i,j;
struct student tmp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(st[j].score<st[j+1].score)
{tmp=st[j];st[j]=st[j+1];st[j+1]=tmp;}
}
int main()
{char No[10][3]={"一","二","三","四","五","六","七","八","九","十"};
int i;
for(i=0;i<10;i++)
{
gets(st[i].name);
scanf("%d",&st[i].score);
fflush(stdin);
}
process();
for(i=0;i<10;i++)
printf("第%s名 %s %d\n",No[i],st[i].name,st[i].score);
return 0;
}
本回答被提问者采纳
相似回答