c语言 学生成绩排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

50 学生成绩排序

成绩: 10 / 折扣: 0.8


大家参加了期末考试,成绩出来后老师要对 n 个学生进行成绩汇总和排序。要求程序按成绩降序进行排序。在排序过程中对于成绩相同的学生,要按照输入数据的顺序进行排列。例如:有5名学生的成绩:
zhang1,90
zhang2,91
zhang3,99
zhang4,91
zhang5,98

则排序结果应该为:
zhang3,99
zhang5,98
zhang2,91
zhang4,91
zhang1,90

请注意例题中“zhang2”和“zhang4”的排列顺序。

输入:
第一行为将要输入的学生数量n
从第二行起后面连续 n 行数据,每行为一名学生的姓名(长度不超过20个字符,不包括空格),考试成绩(int)

输出:
排序后的结果。每行为一名学生的姓名和成绩。






测试输入

期待的输出

时间限制

内存限制

额外进程



测试用例 1

以文本方式显示
1.5?
2.zhang1,90?
3.zhang2,91?
4.zhang3,99?
5.zhang4,91?
6.zhang5,98?

以文本方式显示
1.zhang3,99?
2.zhang5,98?
3.zhang2,91?
4.zhang4,91?
5.zhang1,90?

1秒

64M

0



测试用例 2

以文本方式显示
1.5?
2.zhang31,90?
3.zhang51,90?
4.zhang2,90?
5.zhang42,90?
6.zhang1,90?

以文本方式显示
1.zhang31,90?
2.zhang51,90?
3.zhang2,90?
4.zhang42,90?
5.zhang1,90?

1秒

64M

0



测试用例 3

以文本方式显示
1.1?
2.wang,100?

以文本方式显示
1.wang,100?

1秒

64M

0





开启时间

2012年05月 21日 星期一 12:00



折扣时间

2012年05月 30日 星期三 23:55



关闭时间

2012年06月3日 星期日 23:55


允许迟交: 是






#include
#include
#include
typedef struct student
{
int score;
char name[20];
}student;
void swap(student * s1,student * s2)
{
char nametemp[20];
strcpy(nametemp,s1->name);
strcpy(s1->name,s2->name);
strcpy(s2->name,nametemp);
int temp;
temp=s1->score;
s1->score=s2->score;
s2->score=temp;
}
void sort(student stu[],int n)
{
int i,j;
for(i=0;ifor(j=0;j{
if(stu[j].score{
swap(&stu[j],&stu[j+1]);
}
else if(stu[j].score==stu[j+1].score)
{
if(strcmp(stu[j].name,stu[j+1].name)>0)
{
swap(&stu[j],&stu[j+1]);
}
}
}
}
void input(student * s)
{
char string[30];
gets(string);
int n,i,j;
n=strlen(string);
for(i=0;i{
if(string[i]==','){s->name[i]='\0';break;}
s->name[i]=string[i];
}
s->score=0;
int temp;
j=n-(i+1)-1;
for(i++;i{
temp=(int)string[i]-48;
s->score= s->score+ temp *(int)pow(10.0,j);
}
}
void main()
{
int n,i;
student stu[20];
scanf("%d\n",&n);
for(i=0;i{
input(&stu[i]);
}
sort(stu,n);
for(i=0;i{
printf("%s,%d\n",stu[i].name,stu[i].score);
}

}

相关文档
最新文档