Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d", &n); // 1n for (int i = 1; i <= n; i++) { if (n % i == 0) { printf("%d ", i); } } return 0; }
这段代码的功能是:输入一个整数n,然后输出n的所有正因数(包括1和n本身)。它通过循环从1到n,检查每个数是否能整除n,如果能则打印出来。

- 代码的注释 `// 1n` 可能是个笔误,看起来像是想写 `// 1 to n` 但写错了。这个注释没有实际作用,但也不会影响程序运行。
- 你的代码逻辑是正确的,但有一个小问题:当n是负数时,循环条件 `i <= n` 可能不会执行,因为如果n是负数,比如-5,那么 `i <= -5` 一开始就不成立,循环不会运行,也就不会输出任何因数。你可以思考一下如何处理负数的情况。