在线编译器 C

#include <stdio.h> enum { SIZE = 10 }; int main() { int Z[SIZE]; int F[SIZE]; int count_Z = 0, count_F = 0; int n; for (int i = 0; i < SIZE; i++) { scanf("%d", &n); if (n > 0) { Z[count_Z] = n; count_Z++; } else if (n < 0) { F[count_F] = n; count_F++; } } for (int i = 0; i < count_Z, i++) { printf("%d ", Z[i]); } for (int i = 0; i < count_F, i++) { printf("%d", F[i]); } return 0; }
这段代码试图从输入中读取10个整数,将正数存入数组Z,负数存入数组F,然后分别输出。但代码中存在语法错误和输出格式问题。

- 第17行和第21行的for循环条件中使用了逗号而不是分号,导致编译错误。逗号运算符在这里不符合语法要求,应该使用分号分隔循环的三个部分。
- 输出负数时,每个数后面没有空格,而正数输出有空格,这样输出格式不一致。另外,如果数组为空(比如没有正数或没有负数),输出可能会显得不完整。