← 返回首页
数组编程练习
发表时间:2024-11-06 01:42:49
数组编程练习

1.输出杨辉三角形

杨辉三角形,又称帕斯卡三角形(Pascal's Triangle),是一种在数学中具有重要意义的三角形数阵。它由一系列数字组成,每个数字都是它正上方两个数字之和。这个三角形的特点是:

杨辉三角形的前几行如下所示:

                    1
                   1   1
                 1   2   1
               1   3   3   1
             1   4   6   4   1
           1   5  10  10   5   1        
         1   6  15  20  15   6   1

代码实现:

#include <stdio.h>

#define MAX 10 // 定义杨辉三角形的最大行数

int main() {
    int arr[MAX][MAX] = {0}; // 用于存放杨辉三角形的数组
    int rows = MAX; // 杨辉三角形的行数

    // 初始化第一行和第一列
    for (int i = 0; i < rows; i++) {
        arr[i][0] = 1;
        arr[i][i] = 1;
    }

    // 计算杨辉三角形的值
    for (int i = 2; i < rows; i++) {
        for (int j = 1; j < i; j++) {
            arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
        }
    }

    // 输出杨辉三角形
    for (int i = 0; i < rows; i++) {
        // 打印空格以使三角形居中
        for (int k = 0; k < rows - i - 1; k++) {
            printf("  ");
        }
        // 打印每一行的值
        for (int j = 0; j <= i; j++) {
            printf("%4d", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

输出结果:

                     1
                   1   1
                 1   2   1
               1   3   3   1
             1   4   6   4   1
           1   5  10  10   5   1        
         1   6  15  20  15   6   1
       1   7  21  35  35  21   7   1
     1   8  28  56  70  56  28   8   1
   1   9  36  84 126 126  84  36   9   1