C言語でのパスカルの三角形のコードを右揃えにする方法は何ですか?
杨辉三角形を右寄せにするには、以下の手順に従うことができます。
- 最初に、出力するパスカルの三角形の行数nを決定します。ユーザーの入力または直接の値の割り当てを使用して行数を設定できます。
- 「各位置の数字を保存するために、二次元配列を使用します。なお、パスカルの三角形の各行は行数より1つ多い数字が含まれるので、配列の列数はn+1である必要があります。」
- 杨辉三角形の各位置の数字を計算するためには、2つの入れ子ループを使用します。外側のループは行数を制御し、内側のループは列数を制御します。具体的な計算式は、arr[i][j] = arr[i-1][j-1] + arr[i-1][j] であり、ここでiは行数を、jは列数を表します。
- 各行の数値を右寄せして出力するために、適切な数のスペースを各行の数値の前に追加する必要があります。スペースの数は行数や列数に応じて計算し、ループを使って制御することができます。
以下は、パスカルの三角形を右揃えにするC言語のコードの例です。
#include <stdio.h>
#define MAX_ROWS 10
int main() {
int n, i, j;
int arr[MAX_ROWS][MAX_ROWS+1];
printf("请输入杨辉三角形的行数:");
scanf("%d", &n);
// 计算杨辉三角形中每个位置的数字
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
// 打印杨辉三角形
for (i = 0; i < n; i++) {
// 输出空格
for (j = 0; j < n - i - 1; j++) {
printf(" ");
}
// 输出数字
for (j = 0; j <= i; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
ユーザーが入力した行数に応じて、右寄せで対応する行数のパスカルの三角形を出力するコードです。