c语言问题希望大家指导一下,因为是初学者,希望简单易懂一点

  1. 编程打印如下形式的杨辉三角形。
       1
    
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 10 5 1
    . . . . . .
    【提示:用二维数组存放杨辉三角形中的数据,这些数据的特点是:第0列全为1,对角线上的元素全为1,其余的左下角元素a[i][j]=a[i-1][j-1]+a[i-1][j],用数组元素作为函数参数编程实现计算,并存放这些元素的值。】

通过输入的行数,创建一个二维数组用来存储杨辉三角的值。外层循环遍历行数,内层循环遍历每行的元素。对于一个给定的元素,如果它处于首位,值应该为1;否则值应该是由上一行的两个相邻元素相加得到的。在打印每个元素的值时,打印一个空格以将它们隔开。


#include <stdio.h>

int main() {
    int rows;
    printf("请输入行数: ");
    scanf("%d", &rows);

    int pascalsTriangle[rows][rows];

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j <= i; j++) {
            if (j == 0 || j == i) {
                pascalsTriangle[i][j] = 1;
            } else {
                pascalsTriangle[i][j] = pascalsTriangle[i - 1][j - 1] + pascalsTriangle[i - 1][j];
            }
            printf("%d ", pascalsTriangle[i][j]);
        }
        printf("\n");
    }

    return 0;
}

int[][] array = new int[10][10];
for (int i = 0; i < 10; i++) {
    array[i][0] = 1;
    array[i][i] = 1;
}
for (int i = 2; i < 10; i++) {
    for (int j = 1; j < i; j++) {
        array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
    }
}
for (int i = 0; i < 10; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(array[i][j] + " ");
    }
    System.out.println();
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    参考资料中没有完整的代码可以直接使用,但是从段落8可以看出使用两重循环来打印杨辉三角的形式,其中要注意的是要把二维数组的第0列和对角线全部赋值为1,其他元素根据左上和正上方的元素之和来计算即可。

    下面是可供参考的代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int n, i, j;
        printf("请输入杨辉三角的行数:\n");
        scanf("%d", &n);
    
        int arr[n][n];  // 定义一个n行n列的数组,存储每个数的值
        for (i = 0; i < n; i++) {
            arr[i][i] = arr[i][0] = 1;  // 对角线和第0列元素赋值为1
            for (j = 1; j < i; j++) {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];  // 根据规律计算每个元素的值
            }
        }
    
        for (i = 0; i < n; i++) {
            for (j = 0; j <= i; j++) {
                printf("%d ", arr[i][j]);  // 按行打印每个元素的值
            }
            printf("\n");  // 换行
        }
    
        return 0;
    }
    

    这个程序使用了一个n行n列的二维数组来保存每个元素的值,然后按行打印出来。在内层循环中,根据杨辉三角的规律计算每个元素的值,然后在外层循环中按行打印出来即可。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^