考试成绩排序
对n个学生进行成绩汇总和排序
要求降序,对成绩相同的同学,按照输入数据进行排序。
例如:有5名同学
zhang1,90
zhang2,91
zhang3,99
zhang4,91
zhang5,98
结果:
zhang3,99
zhang5,98
zhang2,91
zhang4,91
zhang1,90
输入:
第一行为将要输入的学生数量n
第二行起后面连续n行数据,每行为一名学生名字(最多20个字符),成绩
#include<stdio.h>
#include<string.h>
struct student
{
char name[100];
int score;
}str[100];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int k=0;
while(1)
{
scanf("%c",&str[i].name[k]);
if(str[i].name[k]==',')
{
str[i].name[k]='\0';
break;
}
k++;
}
//printf("%s",str[i].name);
str[i].name[k]='\0';
scanf("%d",&str[i].score);
}
for(i=0;i<n;i++)
{
for(int j=n-1;j>i;j--)
{
struct student temp;
if(str[j].score>str[j-1].score)
{
temp=str[j];
str[j]=str[j-1];
str[j-1]=temp;
}
}
}
for(i=0;i<n;i++)
printf("%s,%d",str[i].name,str[i].score);
printf("\n");
}