📜  C程序来print数字三角形(1)

📅  最后修改于: 2023-12-03 15:14:26.312000             🧑  作者: Mango

C程序实现数字三角形

数字三角形是一道经典的编程练习题,通过C语言实现数字三角形的打印可以帮助程序员练习循环语句和条件语句的运用。

任务需求

输入一个数字n,输出由1~n组成的数字三角形,每一行数字的数量增加1。例如,输入数字n=5,则输出如下数字三角形:

1  
2 3  
4 5 6  
7 8 9 10  
11 12 13 14 15  
思路分析

数字三角形的打印需要满足一个规律:每一行数字的数量增加1。因此可以使用循环语句实现,同时需要对当前输出的数字进行判断,以决定是否需要换行。具体思路如下:

  1. 定义一个计数器变量count,用于计算输出数字的总数。
  2. 初始化一个外层循环,控制每一行数字的输出,循环条件为行数不超过输入数字n。
  3. 在外层循环中定义一个内层循环,控制当前行数字的输出,循环条件为当前输出数字的总数不超过上一行总数+当前行数字的数量。
  4. 在内层循环中判断当前输出数字的总数是否等于当前行数字的数量,如果是就换行,否则在同一行输出数字。
  5. 在每次输出数字后,将计数器变量count加1,直到count等于输入数字n的平方和。
代码实现
#include <stdio.h>

int main() {
    int n, count = 1;
    printf("请输入数字n:");
    scanf("%d", &n); // 输入数字n

    for (int row = 1; row <= n; row++) { // 外层循环,控制每一行数字的输出
        for (int col = 1; col <= row; col++) { // 内层循环,控制当前行数字的输出
            printf("%d ", count); // 输出数字
            count++; // 计数器加1
            if (count > n * n) { // 如果数字已经全部输出,则跳出循环
                break;
            }
            if (count == (row + 1) * row / 2 + 1) { // 如果当前输出数字的总数等于当前行数字的数量,换行输出下一行数字
                printf("\n");
                break;
            }
        }
        if (count > n * n) { // 如果数字已经全部输出,则跳出循环
            break;
        }
    }

    return 0;
}
总结

通过以上代码实现,可以打印出任意数字n的数字三角形。这里需要特别强调的是,在进行循环嵌套时,需要注意内层循环中的计数器变量和外层循环中的变量要分别定义和初始化,否则会出现逻辑错误。同时,计算总数的公式为上一行总数+当前行数字的数量,即(row+1)*row/2+1,需要注意分母/2的情况。