1 条题解

  • 0
    @ 2025-10-24 15:02:25

    思路分析

    1. 任务拆解:

    • 读取银币个数n
    • 读取n个银币金额并计算总金额
    • 计算银币金额的平均值
    • 找出与平均值差值最小的银币
    • 输出最接近平均值的银币金额

    2. 关键点分析:

    • 需要先计算平均值,再比较每个银币与平均值的接近程度
    • 使用绝对值函数abs来计算差值,不考虑正负
    • 需要记录最小差值对应的银币位置
    • 初始化最小差值min为一个较大的数

    3. 步骤规划: 第一步:读取银币个数n 第二步:循环读取银币金额并累加总金额 第三步:计算平均值pj 第四步:遍历数组,计算每个银币与平均值的绝对差值 第五步:找出最小差值对应的银币位置 第六步:输出该银币的金额

    4. 代码对应:

    • cin>>n:读取银币个数
    • 第一个for循环:输入金额并计算总和s
    • pj=s*1.0/n:计算平均值
    • min=99999:初始化最小差值
    • 第二个for循环:计算每个金额与平均值的绝对差值
    • abs(a[i]-pj):计算绝对差值
    • if(c<min):更新最小差值和对应位置
    • cout<<a[mini]:输出最接近平均值的金额
    • 1

    信息

    ID
    648
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    (无)
    递交数
    601
    已通过
    200
    上传者