有点看不懂这个代码,为什么要把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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: