Online Compiler C

#include <stdio.h> int main() { int n; // 读入数字 n,别忘了我们的老朋友——取地址符 & if (scanf("%d", &n) != 1) { return 0; } // 外层循环:i 代表当前是第几行 for (int i = 1; i <= n; i++) { // 内层循环:j 代表当前行要打印的数字,从 1 打印到 i for (int j = 1; j <= i; j++) { printf("%d", j); // 严格的空格控制:如果不是当前行的最后一个数字,就打印一个空格 if (j < i) { printf(" "); } } // 每一行数字打印完毕后,别忘了打一个换行符 \n 跳到下一行 printf("\n"); } return 0; }
这段代码实现了一个数字三角形打印程序。它根据用户输入的正整数n,打印出从1到n行的数字三角形,每行数字从1开始递增到行号。

代码逻辑是正确的,但有一个常见的细节问题需要注意:

- 当输入n=1时,程序会打印一行"1",这符合预期。但检查一下当n较大时,数字之间的空格是否会导致输出格式与题目要求完全一致。

- 观察代码中空格的处理方式:每个数字后面都跟一个空格(除了行末)。这种处理方式会在每行最后一个数字后面也产生一个空格吗?仔细看条件判断`if (j < i)`,它确保了最后一个数字后面不打印空格,所以格式是正确的。