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

#include <stdio.h> int main() { int n = 5; int a[5]; int min; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } min = a[0]; for (int i = 0; i < n; i++) { if (a[i] < min) { min = a[i]; } } printf("%d", min); return 0; }
这段代码的功能是:先输入5个整数存入数组,然后找出其中的最小值并输出。整体逻辑是正确的,但有一个小问题需要注意。

- 变量 `min` 没有初始化,虽然你随后用 `a[0]` 赋值了,但如果在数组为空或循环未执行的情况下,`min` 的值是不确定的。不过这里数组长度固定为5,所以不会出问题,但养成初始化习惯更好。
- 你的最小值查找循环从 `i = 0` 开始,这会导致第一次比较 `a[0] < a[0]`,永远为假,不影响结果,但可以优化为从 `i = 1` 开始,避免一次无意义的比较。