zzulioj1197 考试排名(一)(结构体专题)
【题目描述】
今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩。现给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。
【输入】
第1行给出考生人数N ( 1<= N<=100 )、考题数M (1<=M<=10 )、分数线(正整数)G;
第2行排序给出第1题至第M题的正整数分值;
以下N行,每行给出一名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号
(题目号由1到M)。
【输出 】
首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考号的升序输出。
【样例输入】
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
【样例输出】
3
CS003 60
CS001 37
CS004 37
代码如下:
#include<stdio.h>
#include<string.h>
struct score
{char name[20];int n;int arr[10];int s;
};/*定义结构体变量*/
int main()
{int b[10],m,i,j,c,d=0,z;struct score a[100],t;scanf("%d%d%d",&m,&c,&z);for(i=0;i<c;i++){scanf("%d",&b[i]);/*输入n门课程各自的分数*/}for(i=0;i<m;i++){a[i].s=0;scanf("%s%d",&a[i].name,&a[i].n);/*输入考生的学号和解决的题目数*/for(j=0;j<a[i].n;j++){scanf("%d",&a[i].arr[j]);/*输入解决的题的题号*/}}for(i=0;i<m;i++){for(j=0;j<a[i].n;j++){a[i].s+=b[a[i].arr[j]-1];/*计算考生的总分*/}}for(i=1;i<=m;i++){for(j=0;j<m-i;j++){if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;/*还是冒泡排序*/}else if(a[j].s==a[j+1].s&&strcmp(a[j].name,a[j+1].name)>0);{t=a[j];/*总分相同是按学号升序排列*/a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<m;i++){if(a[i].s>=z)/*统计上线考生数*/d++;}printf("%d\n",d);for(i=0;i<m;i++){if(a[i].s>=z)printf("%s %d\n",a[i].name,a[i].s);}return 0;
}
【补充】
1,****结构类型定义的标准格式如下:
struct 结构标识符
{
数据类型 成员1的名字;
数据类型 成员2的名字;
…
数据类型 成员n的名字;
}
结构内的成员可以是任何类型的变量,包括数组在内。
注意,结构模板只是声明了一种数据类型,定义了数据的组织形式,并未声明结构类型的变量,因而编译器不为其分配内存,就像编译器不会为int分配内存一样。有了结构模板,就可以用其声明结构变量,C语言定义结构变量:
(1)先声明结构类型,再定义结构变量。
eg:struct student stu;
(2)在声明结构的同时定义结构变量。(此种情况下,结构标识符可以省略。)
eg:struct student
{
char ID[16];
char name[16];
char sex;
float score;
}stu;
2,定义好结构变量后,通常使用sizeof运算符计算结构变量实际所占用的内存量。千万不要想当然地对各成员进行简单求和的方式来计算,否则会降低程序的可移植性。
3,温故字符比较函数strcmp()和strncmp()
调用格式:strcmp(字符串1,字符串2)
功能:比较字符串1和字符串2的大小,若前者大则返回一个正整数,若后者大则返回一个负整数,若两者相等,则返回0
调用格式:strncmp(字符串1,字符串2,n)
功能:将字符串1中最多n个字符与字符串2进行比较
注意:比较两个字符串的大小只能使用此函数,而不能使用”>“”==“”<“等关系符
字符串比较规律:按自左至右的顺序,对应字符比较,若二者相等,则比较下一个字符,直到遇到不同的字符为止。比较的结果由函数返回。eg:strcmp(“abc”,“abc”)返回值是0
strcmp(”b“,”abcd“)返回值为正数
strcmp(“abc”,“abcd”)返回值为负数
【寄语】
天塌下来,有个高的人帮你顶着,但是你能保证那个高的人没在低头吗?之后还不是要靠你自己!!!
欢迎关注!欢迎私信!!欢迎评论!!!
zzulioj1197 考试排名(一)(结构体专题)相关推荐
- 考试排名(结构体专题)
考试排名(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的 ...
- 向大佬学习C语言1198: 考试排名(二)(结构体专题)
题目 1198: 考试排名(二)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 3737 解决: 728ACM 国际大学生程序设计竞赛,英文全称:ACM Internatio ...
- 1197: 考试排名(一)(结构体专题)
1197: 考试排名(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 59 解决: 70 [提交] [状态] [讨论版] [命题人:eilene] 题目描述 今天浙大 ...
- 考试排名(一)(结构体专题)
考试排名(一)(结构体专题) 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线的考生,并将 ...
- ZZULIOJ1198: 考试排名(二)(结构体专题)
1198: 考试排名(二)(结构体专题) 题目描述: ACM 国际大学生程序设计竞赛,英文全称:ACM International Collegiate Programming Contest(ACM ...
- 1481: 考试排名(一)(结构体专题)
1481: 考试排名(一)(结构体专题) 1.描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总成绩.现给定录取分数线,请你写程序找出最后通过分数线 ...
- 1198: 考试排名(二)(结构体专题)
1198: 考试排名(二)(结构体专题) 题目描述 ACM 国际大学生程序设计竞赛,英文全称:ACM International Collegiate Programming Contest(ACM- ...
- 问题 C: 考试排名(一)(结构体专题)
问题 C: 考试排名(一)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 今天浙大研究生复试的上机考试跟传统笔试的打分规则相似,总共有n道题,每道题有对应分值,最后计算总 ...
- ZZULIOJ 1180-1198结构体专题 参考代码
一共19道题 虽然是java写的,但是还是用的类似于C的结构体 下面代码供参考 每题前面标的有题号 *1180 成绩统计(结构体专题) 1181 谁的年龄最小(结构体专题) 1182 查询记录(结构体 ...
- ZZULIOJ: 1187: 棒棒糖(结构体专题)
1187: 棒棒糖(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1006 解决: 790 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 新年快到了,计算机 ...
最新文章
- Alibaba Dubbo框架同步调用原理分析-2
- Python编程语言学习:for循环实现对多个不同的DataFrame数据执行相同操作(可用于对分开的测试集、训练集实现执行相同逻辑任务)
- ASP.NET Core开发-使用Nancy框架
- linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录
- java中do loop的使用_Java中do-while循环——通过示例学编程(11)
- sqlite sqlite3_bind_int sqlite3_bind_text
- 报告老板:这次的缓存事故是这样的...
- win10更新失败,怎么删除临时文件下面的更新
- 软件测试——Junit的使用
- Spark内核解析之二:Spark 部署模式
- 希望能够在这条路上走下去
- C语音--static变量
- Check Point R80.10 SmartConsole汉化生成中文报表
- 计算机函数average意思,average函数的功能是计算什么
- 浪潮2020年Q1闪存存储领涨,出货量增速跃居中国第一
- 推荐8个相见恨晚的学习类app,每一个都诚意满满
- jupyter notebook书写规范
- 大三第十一周学习笔记
- 九度OJ北京航空航天大学2008机试题题解
- [ASP.NET]文件处理
热门文章
- 比 Xshell 还好用的 SSH 客户端神器!
- 安卓实现下拉刷新上拉加载
- TCP-IP详解:SACK选项(wireshark抓包有SLE和SRE的SACK包)
- 机器周期、振荡周期、时钟周期、状态周期???
- 常见的SQL面试题(学生表_课程表_成绩表_教师表)
- “21 天好习惯”第一期-4
- python输出字符串排列组合代码
- 智能内存整理 [免费绿色] 3.0.0.0
- PySpark之DataFrame的常用函数(创建、查询、修改、转换)
- 助眠好物推荐,改善睡眠的好方法