#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    
    int triangle[n][n];
    
    // 初始化杨辉三角的第一行和对角线上的元素为1
    for(int i = 0; i < n; i++) {
        triangle[i][0] = 1;
        triangle[i][i] = 1;
    }
    
    // 计算杨辉三角的其他元素
    for(int i = 2; i < n; i++) {
        for(int j = 1; j < i; j++) {
            triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
        }
    }
    
    // 输出杨辉三角
    for(int i = 0; i < n; i++) {
        for(int j = 0; j <= i; j++) {
            printf("%d ", triangle[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}

代码详解:

  1. 头文件包含: #include <stdio.h>,包含标准输入输出库,用于获取用户输入和输出结果。

  2. 主函数: int main() { ... },程序的入口点。

  3. 输入: scanf("%d", &n);,从标准输入读取一个整数并存储到变量 n 中,n 表示要输出的杨辉三角的行数。

  4. 二维数组: int triangle[n][n];,声明一个二维数组 triangle,用来存储杨辉三角的元素。数组的大小为 nn 列。

  5. 初始化: for(int i = 0; i < n; i++) { triangle[i][0] = 1; triangle[i][i] = 1; },将杨辉三角的第一行和对角线上的元素初始化为 1。

  6. 计算: for(int i = 2; i < n; i++) { for(int j = 1; j < i; j++) { triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; } },根据杨辉三角的规律,计算其他元素的值。每个元素的值等于其上一行对应位置的两个元素之和。

  7. 输出: for(int i = 0; i < n; i++) { for(int j = 0; j <= i; j++) { printf("%d ", triangle[i][j]); } printf("\n"); },遍历二维数组,将每个元素的值输出到标准输出,每个数字之间用空格隔开,每行输出完毕后换行。

运行结果:

当用户输入 5 时,程序会输出以下内容:

1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

总结:

以上代码实现了使用 C 语言输出杨辉三角的功能。您可以修改代码中的 n 值来改变输出的行数。这个例子展示了如何使用循环和二维数组来解决实际问题,也体现了 C 语言在算法实现中的强大功能。

拓展:

除了使用二维数组,还可以使用递归等其他方法来实现杨辉三角的输出。您可以尝试使用不同的方法来实现,并比较它们之间的效率和可读性。


原文地址: https://www.cveoy.top/t/topic/eEuD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录