HDU 1236 排名
来源:互联网 发布:ps3 xbox360知乎 编辑:程序博客网 时间:2024/06/01 08:00
- 题目:1236
- 题目输入:测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N
< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一
名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号
(题目号由1到M)。
当读入的考生人数为0时,输入结束,该场考试不予处理。 - 题目分析:需要注意一下输入数据的边界,适当扩大题目要求的大小即可,然后按照题目要求的成绩进行排序输出即可,简单题。
- 我的思路:
用一个结构体数组来储存所有的学生的信息,一个一维数组存储每道题的分值,按照学生做出的题目来累计分数,对于每个超过分数线的学生也进行累计,最后按照成绩的大小(超过分数线的)排序之后输出。 - 完整代码:
#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{ int score; char name[21];}stu;int main(void){ int N, M, G, m, ans, sum, num; stu a[1001], temp; int b[11], i, j; while (scanf("%d%d%d", &N, &M, &G) != EOF &&N != 0) { ans = 0; for (i = 0; i < M; i++) { scanf("%d", &b[i]); } for (i = 0; i < N; i++) { sum = 0; scanf("%s", a[i].name); //考号 scanf("%d", &m); //做出的题目数 for (j = 0; j < m; j++) { scanf("%d", &num);//读入做出的题号 sum += b[num - 1]; } a[i].score = sum; if (sum >= G) { ans++; } } for (i = 0; i < N - 1; i++) { for (j = 0; j < N - 1 - i; j++) { if (a[j].score < a[j + 1].score) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } if (a[j].score == a[j + 1].score) { if (strcmp(a[j].name, a[j + 1].name) > 0) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } printf("%d\n", ans); for (i = 0; i < ans; i++) { printf("%s %d\n", a[i].name, a[i].score); } } return 0;}
阅读全文
0 0
- HDU 1236 排名
- HDU-1236 排名
- HDU 1236 ( 排名 )
- hdu 题目1236 排名
- hdu-1236--排名
- hdu 1236 排名
- hdu 1236 排名
- HDU 1236 排名
- hdu-1236-排名
- HDU 1236 排名
- HDU 题目1236 排名
- hdu 1236 排名
- hdu 1236 排名
- hdu-1236-排名
- hdu 1236 排名
- HDU 1236 排名
- hdu 1236 排名
- hdu 1236 排名
- 纯新手入门安装TensorFlow并写Hello(mac版)
- laravel自定义分页样式
- HDU5784How Many Triangles(几何+极角排序)
- 实验楼里的github以及nginx
- Noip提高组2015 Day2 T2 子串 动态规划
- HDU 1236 排名
- netstat 常用用法
- 文章标题
- bzoj 1060(树形dp)
- Fibonacci Again(HDU1021)
- NodeJS总结(二):事件响应一定是异步的吗?
- 【拜小白opencv】28-平滑处理1线性滤波之——盒式滤波(方框滤波)
- 我可是一个有图的留言板咳咳√
- 二维vector定义