在线编译器 C

#include <stdio.h> int main() { int N; scanf("%d", &N); if (N==0) {printf("0");} else while (N>0) { printf("%d ",N%10); N/=10; } return 0; }
这段代码的作用是:读入一个整数N,然后从个位开始逐位输出它的每一位数字,每个数字后面跟一个空格。如果N为0,则直接输出0。

代码逻辑基本正确,但有一个细节问题需要注意:

- 当N为0时,程序会输出"0",这是正确的。但当N为负数时,while循环条件N>0不成立,程序会直接结束,没有任何输出。题目可能要求处理负数的情况,比如输出负号后再输出各位数字。

- 另外,输出格式中每个数字后面都跟了一个空格,包括最后一个数字,这可能导致输出末尾有多余空格。通常题目可能要求数字之间用空格分隔,但末尾无空格。