1 条题解
-
0
思路分析
1. 任务拆解:
- 读取学生人数n
- 读取每个学生的三科成绩并计算总分
- 记录学生学号
- 按规则进行多条件排序
- 输出前5名学生的学号和总分
2. 关键点分析:
- 排序规则优先级:
- 总分从高到低
- 总分相同时,语文成绩从高到低
- 总分和语文都相同时,学号从小到大
- 需要同时交换学号、语文成绩和总分以保持数据一致性
- 使用选择排序思想进行多条件比较和交换
3. 步骤规划: 第一步:读取学生人数n 第二步:循环读取成绩,计算总分,记录学号 第三步:进行多条件排序 第四步:输出前5名学生的学号和总分
4. 代码对应:
cin>>n:读取学生人数- 第一个
for循环:输入成绩,计算总分s[i],记录学号no[i] - 排序双重循环:进行多条件比较和交换
if(s[i]<s[j]):比较总分,低的交换到后面else if(s[i]==s[j]):总分相同时比较语文成绩if(a[i]<a[j]):语文成绩低的交换到后面- 多个
swap:保持学号、语文成绩、总分数据一致性 - 输出循环:输出前5名学生的学号和总分
信息
- ID
- 1790
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 323
- 已通过
- 106
- 上传者