输入n个数,求其最大值和最小值的差

img

有点看不懂这个代码,为什么要把max定义的这么大,min定义这么小,还有后面,又输入一个t是什么意思,刚入门,求解答

这段代码的功能是读入一些数字,然后计算它们的最大值和最小值之差。

这里将 ma 初始化为0是为了确保读入的第一个数字比它小,这样第一个读入的数字就可以被正确地更新为最大值。同样地,将 mi 初始化为一个非常大的数,以确保读入的第一个数字比它大,这样第一个读入的数字就可以被正确地更新为最小值。

代码中的 t 是用来读取每一个输入的数字的临时变量。

下面是更易懂的代码解释:


#include <stdio.h>

int main() {
    int ma = 0, mi = 1000000, t, n;
    scanf("%d", &n);
    while (n--) { // 循环读取n个数字
        scanf("%d", &t); // 读取一个数字
        if (t < mi) { // 更新最小值
            mi = t;
        }
        if (t > ma) { // 更新最大值
            ma = t;
        }
    }
    printf("%d", ma - mi); // 输出最大值和最小值之差
    return 0;
}







不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^