c语言成绩从高到低排列,C语言老师出的题,不会做,dalao们帮个忙呗,非常感谢...

【问题描述】

从标准输入连续读入n(n<10)个学生的学号(不超过int类型表示范围)以及数学、英语、语文三门课的成绩,各行数据已经按学号从低到高排序了。请计算个人的平均成绩,并且按个人的总成绩由高到低排序(如果总成绩相同,按学号由低到高排序,但前面的排序序号不变,即两人排名相同),将排名结果在屏幕上显示出来(要求同一列右对齐,其中排名占4个字符、学号占10个字符,数学、英语、语文各占5个字符)。如输入的学生人数n大于等于10,则打印输出“Please input 1-9.“, 然后,退出程序。提示:冒泡法会保持原始数组中相同元素的次序不变。

【输入形式】

从控制台输入一个小于10的正整数,表示学生人数;然后分行输入学号以及数学、英语、语文三门课的成绩,中间用空格分隔。

【输出形式】

1、控制台输出排序结果,要求输出:排名结果、学号、数学成绩、英语成绩、语文成绩。

2、要求同一列右对齐,其中排名占4个字符、学号占10个字符,数学、英语、语文各占5个字符。

3、如两人总成绩相同,按学号由低到高排序输出,但前面的排序序号不变,即两人排名相同。

【样例输入1】

8

39060405 78 82 69

39060412   95 85 91

39060413  95 86 90

39060415   98 88 85

39060419   75 89 88

39060421 89 88 75

39060425   85 78 93

39060427 87 92 88

【样例输出1】

1  39060412    95   85   91

1  39060413    95   86   90

1  39060415    98   88   85

4  39060427    87   92   88

5  39060425    85   78   93

6  39060419    75   89   88

6  39060421    89   88   75

8  39060405    78   82   69

【样例输入2】

10

【样例输出2】

Please input 1-9.

【样例说明】

相同分数,相同排名的原则。在样例1中:“1 39060412  95 85 91”、“1  39060413     95   86   90”、“1 39060415 98 88 85”总分相同,因此排名相同;同时,由于有三个第1名,因此要跳开2和3,因此,下一位同学的排名从4开始计算,为“4 39060427 87 92 88”。其中“6 39060419  75 89 88”和“6 39060421  89 88 75”也是一样的道理。

本题评分分为两个部分,完成第一层按成绩由高到低排序,并且给出正确的输入输出,得60%;完成第一层按成绩排序,且在相同总分的情况下,能够正确的按照学号由低到高排序,并且给出正确的输入输出,得100%。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值