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

#include <stdio.h> int main() { int a, b, c, d, e, min, max; 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 (b < max) max = b; printf("%d", min); return 0; }
这段代码的功能是:读取5个整数,找出其中的最小值并输出。但代码中找最大值的部分存在逻辑错误。

- 在找最大值时,你使用了 `if (b < max) max = b;`,这个条件判断的是“如果b小于当前最大值,就把b赋值给max”,这会导致max最终变成最小值,而不是最大值。应该使用大于号来判断。
- 另外,代码中只对b进行了最大值判断,没有处理c、d、e,所以即使修正了比较符号,也只能正确找出a和b中的较大值,无法得到全部5个数中的最大值。