PTA学生成绩排序-C语言详解.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人不知而不愠,不亦君子乎?——《论语》 PTA学⽣成绩排序-C语⾔详解 7-72学⽣成绩排序 (20分) 给出⼀组学⽣名单(姓名和成绩),请输出按成绩从⼤到⼩排序后的结果(名次和姓名)。成绩相同的⼈拥有相同的名次,且按姓名的字典 序从⼩到⼤排列。题⽬保证学⽣姓名没有重复。 输⼊格式: 第⼀⾏给出不⼤于10000的整数N。 接下来N⾏,每⾏给出学⽣姓名和成绩,以空格分隔。学⽣姓名不超过20个字符。 输出格式: 共输出N⾏,每⾏包含对应的学⽣排名和姓名,以空格分隔。 输⼊样例: 7 KongDezhen 94 FuTaotao 93 HuYu 94 XuJiecen 94 WuSuqi 96 ChenDa 93 HuNianbo 95 输出样例: 1 WuSuqi 2 HuNianbo 3 HuYu 3 KongDezhen 3 XuJiecen 6 ChenDa 6 FuTaotao 非淡泊无以明志,非宁静无以致远。——诸葛亮 穷则独善其身,达则兼善天下。——《孟子》 #includestdio.h #includestring.h struct student{ char name[25]; int num ; }; ⽐较函数 int cmp(struct student a,struct student b)// { if(a.num==b.num) return strcmp(a.name,b.name)0; else return b .numa.num; } int main() { int n ,i,j ; scanf(%d,n); struct student a[11111],b; for(i=0;in;i++) { scanf(%s,a[i].name); scanf(%d,a[i].num); } 冒泡排序进阶 for(i=0;in;i++)// for(j=i+1;jn;j++) { if(cmp(a[i],a[j])) { b = a[i]; a[i] = a[j]; a[j] = b ; } } int t=1; for(i=1;i=n;i++) { printf(%d %s\n,t,a[i-1].name); if(a[i].num!=a[i-1].num) { t=i+1; } } } 这题的第⼀个难点主要是需要在给成绩排序的同时还要给名字的⾸字母排序。所以建⽴⼀个⽐较函数较为便捷,然后符合cmp函数的条件就 进⾏排序,其实就是冒泡排序的进阶 第⼆个难点是排名的问题,若成绩相同排名相同,其实排名还是按照名次的,仔细揣摩⼀下我最后是如何排的,挺基础的⼀个解决⽅式。 我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。——《白居易》

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档