1 条题解

  • 0
    @ 2025-10-30 10:40:41

    思路分析

    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
    上传者