私はパスカルの三角形をユーザー入力レベルまで表示するプログラムを作成しようとしています。階乗法は使用できません。我々は唯一の私は、両方の次元でサイズ28の配列を使用しています理由である、28のレベルまで行くことができることになっているCの奇妙な出力のパスカルの三角形
#include <stdio.h>
void trianglePrint(const int numLevels);
int main() {
int numLevels;
printf("Please enter how many levels of Pascal's Triangle you would
like to see: ");
scanf("%d", &numLevels);
trianglePrint(numLevels);
return 0;
}
void trianglePrint(const int numLevels) {
int pascalTriangle[28][28];
int i, j;
for (i = 0; i < numLevels; ++i) {
for (j = 0; j <= i; ++j) {
if (i == 0 || i == 1 || j == 0 || j == numLevels) {
pascalTriangle[i][j] = 1;
printf("%d ", pascalTriangle[i][j]);
}
else {
pascalTriangle[i][j] = pascalTriangle[i - 1][j - 1] +
pascalTriangle[i - 1][j];
printf("%d ", pascalTriangle[i][j]);
}
}
printf("\n");
}
}
:私の現在のコードはこれです。
これは三角形の約6レベルでうまく動作しますが、大きなレベルの場合は本当に大きな整数が得られます。私はそれが初期化されていない配列のためだと思ったが、わからない。誰がエラーがどこにあるか知っていますか?
を試してみてくださいそれは実際に出力しているもの対期待される出力を表示するために役立つかもしれません。 – Carcigenicate
'int pascalTriangle [28] [28] = {{0}};' – BLUEPIXY
'j == numLevels'は常にfalseです。 'pascalTriangle [i - 1] [j]'は初期化されていない変数から読み込みます。 – melpomene