Online Compiler C

#include <stdio.h> int main() { int a; scanf("%d", &a); int num[a]; for (int i = 0; i < n; i++) { scanf("%d", &num[i]); } int sum = 0; for (int i = 0; i < n; i++) { if (num[i] > 0) { sum += num[i]; } } printf("%d", sum); }
这段代码试图读取一个整数n,然后读取n个整数存入数组,最后计算其中所有正数的和并输出。但代码中存在变量名不一致的问题。

- 代码中声明了变量 `a` 并用它来定义数组大小,但后面的循环中却使用了未定义的变量 `n`。你需要确保循环中使用的变量名与之前定义的变量名一致。
- 另外,数组 `num[a]` 的大小依赖于 `a` 的值,但 `a` 是通过 `scanf` 读取的,这在C99标准中是允许的(变长数组),但要注意输入的值必须合理。