便捷网站建设公司,手机网站建设请示,已备案网站数量,教师兼职做网站22-结构体-2-测试排名 [命题人 : 外部导入] 时间限制 : 1.000 sec 内存限制 : 128 MB
题目描述 为了提升同学们的编程能力#xff0c;老师们会在平时进行C语言的上机测试#xff0c;了解班上同学的学习情况#xff0c;对于一些测试成绩较差的同学#xff0c;老师会进行督促…22-结构体-2-测试排名 [命题人 : 外部导入] 时间限制 : 1.000 sec 内存限制 : 128 MB
题目描述 为了提升同学们的编程能力老师们会在平时进行C语言的上机测试了解班上同学的学习情况对于一些测试成绩较差的同学老师会进行督促和增加练习。每次考完后老师希望知道哪些同学通过了测试他们的成绩排名怎样。你能编写程序帮老师进行成绩统计吗 统计的内容包括通过测试线的同学个数按照降序给出这些同学的成绩如果成绩相同则按照考号有小到大输出。 输入 多样例。每个测试文件包括多组测试用例。每组测试用例包括多行输入 第一行为考生人数n1≤n1000、考题数m1≤m≤10、测试合格线g正整数 第二行为第1题至第m题的正整数分值x 接下来的n行每行包括一 名考生的准考证号s长度不超过20的字符串、该生解决的题目总数t、以及这m道题的题号 题目号由1到m。 当读入的考生人数为0时输入结束。 输出 对每组样例首先在第1行输出不低于分数线的考生人数随后若干行按分数从高到低输出上线考生的考号与分数其间用1空格分隔。若有多名考生分数相同则按他们考号的升序输出。 样例输入 Copy 4 5 25 10 10 12 13 15 CS004 3 5 1 3 CS003 5 2 4 1 3 5 CS002 2 1 2 CS001 3 2 3 5 1 2 40 10 30 CS001 1 2 2 3 20 10 10 10 CS000000000000000001 0 CS000000000000000002 2 1 2 0 样例输出 Copy 3 CS003 60 CS001 37 CS004 37 0 1 CS000000000000000002 20
#includestdio.h
#includestdlib.h
#includestring.h
struct student {char kaohao[21];int score;
};
int compare(const void* p, const void* q)
{struct student* p1 p;struct student* q1 q;if (p1-score q1-score)return -1;else if (p1-score q1-score)return 1;else{return strcmp(p1-kaohao, q1-kaohao);}
}
int main(void)
{int n;while (1){scanf(%d, n);if (n 0) break;int daxianrenshu 0;int m, g;scanf(%d %d, m, g);int arr[11];//liru,arr[1]wei diyitiduiyingdefenshustruct student kaosheng[10000];for (int i 1; i m; i){scanf(%d, arr[i]);}for (int i 1; i n; i){scanf(%s, kaosheng[i].kaohao);int num,sum0;scanf(%d, num);for (int h 1; h num; h){int t;scanf(%d, t);sum arr[t];}kaosheng[i].score sum;if (sum g)daxianrenshu;}qsort(kaosheng 1, n, sizeof(struct student), compare);printf(%d\n, daxianrenshu);for (int i 1; i daxianrenshu; i){printf(%s %d\n, kaosheng[i].kaohao, kaosheng[i].score);}}return 0;
}好好起名字