概述
题目描述
科大学生成绩表有学号、数学成绩、英语成绩与程序设计成绩4项。按学号次序给定一个班的成绩,要求根据个人总分高低排序输出同学们的成绩。
输入
第一行是整数N,表示班级学生人数(N<=40)。
随后有N行,每一行依次有空格分开的学号、数学成绩、英语成绩与程序设计成绩等4项。学号统一都是10位数字,前四位是1705,而且不会有相同学号。成绩是来自区间[0,100]的整数。
输出
根据总分由高到低进行排序。如果总分相同,则数学成绩高者居前,如果数学成绩也相同,则英语成绩高者居前,若英语成绩相同,则学号按字典序(即strcmp的比较规则)小者居前。
每一个学生输出学号,三门成绩总分,数学成绩,英语成绩,程序设计成绩五项信息。其中学号宽度占15位,其它各数据项宽度占5位,输出格式类如”%-5d”,见样例。
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">6
1705050201 78 65 95
1705050202 81 85 85
1705050203 95 65 78
1705050204 66 65 67
1705050205 56 67 89
1705050206 65 95 80
</span></span></span></span>
样例输出 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">1705050202 251 81 85 85
1705050206 240 65 95 80
1705050203 238 95 65 78
1705050201 238 78 65 95
1705050205 212 56 67 89
1705050204 198 66 65 67 </span></span></span></span>
#include <stdio.h>
#include<string.h>
struct student{ /*学生信息结构类型定义*/
char num[10];//要用到strcmp函数所以将学号定义为字符数组 /*学号*/
int computer,english,math; /*三门课程成绩*/
int sum;
};
int main(void)
{
int i,j,n,index=0;//注意要将index的初始值设为0
struct student stu[40],change;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s%d%d%d",stu[i].num,&stu[i].math,&stu[i].english,&stu[i].computer);
stu[i].sum=stu[i].computer+stu[i].math+stu[i].english;
}
for(i=0;i<n-1;i++){//选择排序法,只用进行n-1次
index=i;//index用来储存最大值
for(j=i+1;j<n;j++){
if(stu[j].sum>stu[index].sum){
index=j;
}
else if(stu[j].sum==stu[index].sum){
if(stu[j].math>stu[index].math){
index=j;
}
else if(stu[j].math==stu[index].math){
if(stu[j].english>stu[index].english){
index=j;
}
else if(stu[j].english==stu[index].english){
if(strcmp(stu[j].num,stu[index].num)<0){
index=j;
}
}
}
}
}
change=stu[index];
stu[index]=stu[i];
stu[i]=change;
}
for(i=0;i<n;i++){
printf("%-15s%-5d%-5d%-5d%-5dn",stu[i].num,stu[i].sum,stu[i].math,stu[i].english,stu[i].computer);
}
return 0;
}
最后
以上就是天真洋葱为你收集整理的成绩排序的全部内容,希望文章能够帮你解决成绩排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复