在线编译器 C

#include <stdio.h> int main() { int a[10]; int sum; for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (int i = 0; i < 10; i++) { if(a[i]>0){ sum+=a[i]; } } printf("%d", sum); return 0; }
这段代码的功能是:读取10个整数存入数组,然后计算其中所有正数的和并输出。

代码中存在一个关键问题:变量 `sum` 没有初始化。在C语言中,未初始化的局部变量会包含一个不确定的值(通常是垃圾值),导致累加结果错误。

- 在使用 `sum` 之前,需要给它赋一个初始值,比如0,否则累加会从随机值开始。
- 检查 `sum` 的声明位置,确保它在第一次使用前被正确初始化。