1 条题解
-
0
思路分析
1. 任务拆解:
- 读取选手人数n
- 读取n个选手的原始成绩(保存到两个数组)
- 将一个数组按降序排列作为排名参考
- 为每个原始成绩在排序数组中查找名次
- 输出每个选手的名次
2. 关键点分析:
- 需要保留原始成绩顺序(数组b)和排序后顺序(数组a)
- 使用冒泡排序对数组a进行降序排列
- 名次规则:在排序数组中第一次出现的位置就是名次
- 相同分数的选手名次相同
3. 步骤规划: 第一步:读取选手人数n 第二步:循环读取成绩到数组a和b(备份) 第三步:对数组a进行降序冒泡排序 第四步:对每个原始成绩,在排序数组中查找名次 第五步:输出每个选手的名次
4. 代码对应:
cin>>n:读取选手人数- 第一个
for循环:输入成绩到a和b数组 - 排序双重循环:对数组a进行降序排列
if(a[j]<a[j+1]):将较大值交换到前面- 外层查找循环:遍历每个原始成绩
- 内层查找循环:在排序数组a中找对应名次
if(b[i]==a[j]):找到该成绩在排序数组中的位置break:找到第一个就停止,确保相同分数名次相同cout<<j<<" ":输出名次
- 1
信息
- ID
- 520
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 355
- 已通过
- 171
- 上传者