0

Row is user-inputted.

cout << "Input the number of rows: ";
cin >> row;
column=row;

int triangle[row][column];

for (i=0;i<=row;i++){
    for (j=0;j<=column;j++){
           triangle[i][j]=0;
    }
}

for (i=0;i<=row;i++){
    for (j=0;j<=i;j++){
           if (j==0 || j==i){
           triangle[i][j]=1;
           } else {
           triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];
           }
    }
}

cout << "Pascals triangle with " << row << " rows.";

for (i=0;i<=row;i++){
    for (j=0;j<=i;j++){
        cout << triangle[i][j] << "\t";
    }
    cout << endl;
}

It does give out proper results when the row is seven, but it somehow crashes when the inputted row is greater than 8.

4

1 に答える 1

2

ほとんどtriangleの場合、使用するインデックスに対して十分なメモリで宣言されていません。その場合row==column==8、次のように宣言する必要があります。

double triangle[9][9];

C++ は 0 から始まるインデックスを使用するため、0 から 8 までの範囲のインデックスを使用できます。ほとんどの場合、宣言は次のようになります。

double triangle[8][8];
于 2013-02-09T15:52:32.803 に答える