C言語で右揃えのパスカルの三角形を実装する方法は何ですか?
杨辉三角形を右寄せにするには、次の手順に従うことができます。
- 杨辉三角形の要素を保存するために2次元配列を定義します。配列の行数は杨辉三角形の行数であり、列数は杨辉三角形の最大行数です。
- 二重のループを使用し、外側のループが行数を制御し、内側のループが各行の要素を制御します。
- 内部のループでは、現在の要素の位置が行数以下かどうかを判断して、スペースを印刷する必要があるかどうかを決定します。スペースを印刷する必要がある場合は、1つのスペースを印刷します。それ以外の場合は、現在の要素の値を印刷します。
- 内部のループが終了すると、改行を出力して、次の行のループに入ります。
以下是一个实现杨辉三角形右对齐的示例代码:
#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を使用してパスカルの三角形の要素を保存しています。内側のループでは、現在の要素の位置が行数以下であるかどうかを判定して、スペースを印刷する必要があるかどうかを決定します。スペースを印刷する必要がある場合はスペースを印刷し、それ以外の場合は現在の要素の値を印刷します。この方法により、パスカルの三角形が右揃えで印刷される効果が実現されました。