在线编译器 C

#include <stdio.h> int main() { int a, b, c, d, e, max, min,sum; scanf("%d%d%d%d%d", a, b, c, d, e); max = a, min = e; if (b > max) max = b; if (c > max) max = c; if (e > max) max = e; if (d > max) max = d; if (a < min) min = a; if (b < min) min = b; if (c < min) min = c; if (d < min) min = d; sum=max+min; printf("%d",sum); }
这段代码的目的是从5个整数中找出最大值和最小值,然后计算它们的和并输出。代码逻辑基本正确,但存在一个关键问题。

- scanf函数中,变量a、b、c、d、e前面缺少取地址符号&。scanf需要变量的地址才能正确存储输入的值,否则会导致程序运行错误或未定义行为。

- 变量sum没有初始化,但后续直接赋值,所以不影响结果。不过建议养成初始化变量的习惯。