ZZULI-1193: 单科成绩排序(结构体专题)
2016-07-19 15:36
169 查看
1193: 单科成绩排序(结构体专题)
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 761 Solved: 337
SubmitStatusWeb
Board
Description
有一学生成绩表,包括学号、姓名、3门课程成绩。请按要求排序输出:若输入1,则按第1门课成绩降序输出成绩表,若输入为i(1<=i<=3),则按第i门课成绩降序输出成绩表。Input
首先输入一个整数n(1<=n<=100),表示学生人数;然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
最后一行输入一个整数i,表示要求按第i门课成绩降序排序输出,若该门课成绩相同,则按学号升序。
Output
输出按第i门课降序排序的结果,格式见样例。Sample Input
3 541207010188 Zhangling 89 78 95 541207010189 Wangli 85 87 99 541207010190 Fangfang 85 68 76 1
Sample Output
541207010188 Zhangling 89 78 95 541207010189 Wangli 85 87 99541207010190 Fangfang 85 68 76
解题思路:
不知道这道题有没有简单的步骤。。。。构造了三个布尔函数!
AC代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
char s[15];
char n[25];
int x;
int y;
int z;
} a[110];
bool cmp1(node A,node B)
{
if(A.x !=B.x )
return A.x >B.x ;
else
{
return strcmp(A.s ,B.s)<0 ;
}
}
bool cmp2(node A,node B)
{
if(A.y !=B.y )
return A.y >B.y ;
else
{
return strcmp(A.s ,B.s)<0 ;
}
}
bool cmp3(node A,node B)
{
if(A.z !=B.z )
return A.z >B.z ;
else
{
return strcmp(A.s ,B.s)<0 ;
}
}
int main()
{
int n,t,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%s%d%d%d",&a[i].s ,&a[i].n ,&a[i].x ,&a[i].y ,&a[i].z );
}
scanf("%d",&t);
if(t==1)
{
sort(a,a+n,cmp1);
for(i=0;i<n;i++)
{
printf("%s %s %d %d %d\n",a[i].s ,a[i].n ,a[i].x ,a[i].y ,a[i].z );
}
}
if(t==2)
{
sort(a,a+n,cmp2);
for(i=0;i<n;i++)
{
printf("%s %s %d %d %d\n",a[i].s ,a[i].n ,a[i].x ,a[i].y ,a[i].z );
}
}
if(t==3)
{
sort(a,a+n,cmp3);
for(i=0;i<n;i++)
{
printf("%s %s %d %d %d\n",a[i].s ,a[i].n ,a[i].x ,a[i].y ,a[i].z );
}
}
return 0;
}
相关文章推荐
- linux free / top
- [LeetCode] 29. Divide Two Integers
- screen命令
- vi/ vim 光标移动命令
- [小笔记]判断NSString是否包含某个字符串
- pycharm中控制台(run)输出乱码的问题
- Java对象的序列化和反序列化
- 精简的后台程序代码——Update
- MySQL 数据库性能优化之缓存参数优化
- 人月神话读书笔记(14)----祸起萧墙
- ListView属性的学习
- js原生态开发需要掌握的几个要点
- WebViewJavascriptBridge
- 使用自定义《UIActivity》进行内容分享-b
- Java动态代理(三)——模拟AOP实现
- CSS3 box-shadow
- Centos ssh登录慢问题的解决办法
- 杨老师课堂之springAOP事务控制源码解析
- 【UOJ #218. 【UNR #1】】火车管理 可持久化线段树
- Struts拦截器学习笔记