C言語で右揃えのパスカルの三角形を実装する方法は何ですか?

杨辉三角形を右寄せにするには、次の手順に従うことができます。

  1. 杨辉三角形の要素を保存するために2次元配列を定義します。配列の行数は杨辉三角形の行数であり、列数は杨辉三角形の最大行数です。
  2. 二重のループを使用し、外側のループが行数を制御し、内側のループが各行の要素を制御します。
  3. 内部のループでは、現在の要素の位置が行数以下かどうかを判断して、スペースを印刷する必要があるかどうかを決定します。スペースを印刷する必要がある場合は、1つのスペースを印刷します。それ以外の場合は、現在の要素の値を印刷します。
  4. 内部のループが終了すると、改行を出力して、次の行のループに入ります。

以下是一个实现杨辉三角形右对齐的示例代码:

#include <stdio.h>

int main() {
    int rows, i, j;
    printf("请输入杨辉三角形的行数:");
    scanf("%d", &rows);

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

    return 0;
}

上記のコードでは、2次元配列triangleを使用してパスカルの三角形の要素を保存しています。内側のループでは、現在の要素の位置が行数以下であるかどうかを判定して、スペースを印刷する必要があるかどうかを決定します。スペースを印刷する必要がある場合はスペースを印刷し、それ以外の場合は現在の要素の値を印刷します。この方法により、パスカルの三角形が右揃えで印刷される効果が実現されました。

bannerAds