九度1014 排名 结构体排序
2013-09-21 18:14
381 查看
结构体排序
当分数相同时,按考号(字符串)升序排序
字符串排序时,在cmp函数里,用strcmp( )来比较两字符串大小
strcmp(a, b ) > 0时,a > b
strcmp(a, b ) = 0时,a = b
strcmp(a, b ) < 0时,a < b
当分数相同时,按考号(字符串)升序排序
字符串排序时,在cmp函数里,用strcmp( )来比较两字符串大小
strcmp(a, b ) > 0时,a > b
strcmp(a, b ) = 0时,a = b
strcmp(a, b ) < 0时,a < b
#include<stdio.h> #include<string.h> typedef struct { char id[25]; int sum; }NODE; NODE stu[1002]; int mark[12]; int cmp(const void *a,const void *b ) { if( ((NODE*)a)->sum != ((NODE*)b)->sum ) return ((NODE*)a)->sum > ((NODE*)b)->sum ? -1:1; else return strcmp(((NODE*)a)->id , ((NODE*)b)->id ); } int main() { int n,m,line,i,j,x,temp,num; while(scanf("%d",&n)&&n) { scanf("%d%d",&m,&line); for(i=1;i<=m;i++) scanf("%d",&mark[i]); temp=0; for(i=0;i<n;i++) { scanf("%s",stu[i].id); scanf("%d",&num); stu[i].sum=0; for(j=0;j<num;j++) { scanf("%d",&x); stu[i].sum+=mark[x]; } if(stu[i].sum>=line) temp++; } printf("%d\n",temp); qsort(stu,n,sizeof(NODE),cmp); for(i=0;i<temp;i++) printf("%s %d\n",stu[i].id,stu[i].sum); } return 0; }
相关文章推荐
- 九度题目1014:排名 (结构体多级排序)
- 结构体简单排序练习 题目1014:排名
- 九度1014排名(结构体)
- 九度考研真题 浙大 2005-2浙大1014:排名 多重排序
- 九度OJ 1014:排名 (排序)
- 九度OJ 1014:排名 (排序)
- *寒假水69——考试排名【结构体排序】【strstr函数】
- 九度OJ 1061 成绩排序(结构体排序)
- PAT (Advanced Level) 1012. The Best Rank (25) 最佳排名,结构体排序,哈希查询
- 九度oj-1014-排名
- HDOJ 1236,九度 :排名 简单的排序
- PAT (Advanced Level) 1075. PAT Judge (25) PAT排名 结构体排序
- 九度oj 题目1014:排名
- 九度 题目1014:排名
- 九度OJ-题目1167-数组排序-结构体数组排序
- HDU 2093 考试排名---结构体排序
- HDU--杭电--2093--考试排名--结构体排序
- 杭电acm 排名 (涉及到结构体排序)
- 九度1014(排序)
- 九度1014:排名