Онлайн компилятор C

#include <stdio.h> int main(void) { int a, b, c, d, e, min, max, n; scanf("%d%d%d%d%d", &a, &b, &c, &d, &e); min = a; if (b < min) min = b; if (c < min) min = c; if (d < min) min = d; if (e < min) min = e; max = a; if (max < b) max = b; if (max < c) max = c; if (max < d) max = d; if (max < e) max = e; n = max * min; printf("%d", n); return 0; }
这段代码的功能是:读入5个整数,找出其中的最大值和最小值,然后输出它们的乘积。

代码逻辑基本正确,但有一个潜在问题需要注意。

- 变量 `n` 被声明为 `int` 类型,但最大值和最小值的乘积可能超出 `int` 的表示范围(例如输入为 100000 和 100000 时,乘积是 10000000000,超过了 32 位 int 的最大值 2147483647)。你需要考虑乘积是否会溢出,以及如何安全地处理这种情况。

- 另外,代码中有些多余的空行,但不影响运行。你可以检查一下是否所有情况下的最大值和最小值都能正确找出,比如当所有数都相等时。