1 条题解
-
0
思路分析
1. 任务拆解:
- 读取数字个数n
- 读取n个整数
- 对数组进行升序排序
- 根据n的奇偶性计算中位数
- 输出中位数
2. 关键点分析:
- 中位数计算分两种情况:
- n为奇数:取中间位置的值(第n/2+1个)
- n为偶数:取中间两个值的平均值
- 使用交换排序进行升序排列
- 中位数结果保留1位小数
3. 步骤规划: 第一步:读取数字个数n 第二步:循环读取n个整数 第三步:使用交换排序进行升序排列 第四步:判断n的奇偶性 第五步:计算中位数 第六步:输出中位数(保留1位小数)
4. 代码对应:
cin>>n:读取数字个数- 第一个
for循环:输入数组元素 - 排序双重循环:进行升序排列
if(a[i]>a[j]) swap(a[i],a[j]):将较小值交换到前面if(n%2==0):判断是否为偶数个z=(a[n/2+1]+a[n/2])/2.0:偶数时取中间两个数的平均值z=a[n/2+1]:奇数时取中间的数printf("%.1lf",z):输出中位数,保留1位小数
- 1
信息
- ID
- 236
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 537
- 已通过
- 173
- 上传者