1 条题解

  • 0
    @ 2026-4-12 8:56:50

    求极差 题解

    一、解题思路

    1. 首先输入整数的个数a,确定要处理多少个数字。
    2. 读取第一个数字,用它初始化最大值最小值(因为第一个数既是当前最大,也是当前最小)。
    3. 循环读取剩下的所有数字,每读一个数字就做两次判断:
      • 如果这个数字比当前最大值大,就更新最大值;
      • 如果这个数字比当前最小值小,就更新最小值。
    4. 最后用最大值 - 最小值,得到的结果就是极差,直接输出即可。

    二、完整代码(变量名:a b c d,极简易懂)

    #include <iostream>
    using namespace std;
    
    int main()
    {
        // a:数字的总个数
        int a;
        cin >> a;
        
        // b:临时存储每次读入的数字
        int b;
        cin >> b;
        
        // c:最大值,初始为第一个数
        int c = b;
        // d:最小值,初始为第一个数
        int d = b;
        
        // 循环读取剩下的 a-1 个数字
        for(int i=1; i<a; i++)
        {
            cin >> b;
            // 更新最大值
            if(b > c) c = b;
            // 更新最小值
            if(b < d) d = b;
        }
        
        // 输出极差:最大值-最小值
        cout << c - d;
        return 0;
    }
    

    三、变量说明

    • a:存储输入的数字总个数
    • b:临时存放每次读取的数字
    • c:记录所有数字中的最大值
    • d:记录所有数字中的最小值

    四、代码运行逻辑(样例演示)

    输入:

    6
    4 1 5 1 4 1
    
    1. a=6,表示有6个数字;
    2. 第一个数是4,所以c=4(最大值),d=4(最小值);
    3. 依次读入后续数字:
      • 读1:1<4,更新d=1
      • 读5:5>4,更新c=5
      • 读1、4、1:都不改变最大/最小值;
    4. 最终c-d=5-1=4,输出结果4。

    总结

    1. 核心公式:极差 = 最大值 - 最小值
    2. 代码极简,仅用a b c d四个变量,新手也能轻松看懂
    3. 遍历所有数字更新最大、最小值,是求极差的标准方法
    • 1

    P5724 【深基4.习5】求极差 / 最大跨度值 / 最大值和最小值的差

    信息

    ID
    217
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    77
    已通过
    19
    上传者