1478 Problem A 总成绩排序(结构体专题)——软四课堂小测试2——2017-12-22
2017-12-23 16:57
267 查看
题目描述
有一学生成绩表,包括学号、姓名、3门课程成绩。请按如下规则排序:按总成绩降序排序,若总成绩相同,则按姓名升序排序。
输入
首先输入一个整数n(1<=n<=100),表示学生人数; 然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
输出
输出排序后的成绩单,格式见输出样例。
样例输入
3 541207010188 Zhangling 89 78 95 541207010189 Wangli 85 87 99 541207010190 Fangfang 89 88 85
样例输出
541207010189 Wangli 85 87 99 271 541207010190 Fangfang 89 88 85 262 541207010188 Zhangling 89 78 95 262
/*这题应先按姓名进行升序排列,然后再按成绩进行降序排列,不然会不太好实现*/
#include<stdio.h>
#include<string.h>
struct student
{
long long num;
char name[20];
int a;
int b;
int c;
int sum;
};
int main()
{
int n,i,j;
scanf("%d",&n);
struct student s
,t;
for(i=0;i<n;i++)
{
scanf("%lld %s %d %d %d",&s[i].num,s[i].name,&s[i].a,&s[i].b,&s[i].c);
}
for(i=0;i<n;i++)
{
s[i].sum=s[i].a+s[i].b+s[i].c;
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(strcmp(s[j].name,s[j+1].name)>0)//使用冒泡排序,先按姓名进行升序排列
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(s[j].sum<s[j+1].sum)//使用冒泡排序,再按成绩进行降序排列
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%lld %s %d %d %d %d\n",s[i].num,s[i].name,s[i].a,s[i].b,s[i].c,s[i].sum);
}
}
/**************************************************************
Problem: 1478
User: 171530425
Language: C
Result: 正确
Time:0 ms
Memory:1092 kb
****************************************************************/
另外一道类似的题,请参考(点击下方超链接文字即可打开):
1481 Problem C 考试排名(一)(结构体专题)
相关文章推荐
- 三种方法:1472 Problem B 选票统计(一)(结构体专题)——软四课堂小测试2——2017-12-22
- 1474 Problem D查询记录(结构体专题)——软四课堂小测试——2017-12-21
- ZZULI-1194: 总成绩排序(结构体专题)
- 1193: 单科成绩排序(结构体专题)
- 1193: 单科成绩排序(结构体专题)
- 1194: 总成绩排序(结构体专题)
- ZZULI-1193: 单科成绩排序(结构体专题)
- 【课堂测试和课堂实践成绩】2017-2018 第一学期201623班《程序设计与数据结构》(2017年12月15日更新)
- 平面点排序(一)(结构体专题)
- 结构体指针数组完成输入学生姓名学号数学语文成绩修改排序显示等功能
- C/C++动态自定义结构体数组实例锻炼-学生成绩排序
- C语言结构体+数组实现学生学号成绩的统计、排序
- 学生成绩排序(结构体)
- 2015年nefu寒假集训结构体排序专题解题报告
- Problem B: 成绩排序
- NYOJ 707 A Simple Problem(结构体排序) 睡前一水~~
- 第六周作业总结(内含查找排序课堂测试及课下作业报告)
- 1182: 按出生日期排序(结构体专题)
- ZULIOJ-1182: 按出生日期排序(结构体专题)
- 【慢慢学算法】:成绩排序(qsort对结构体的多级排序)