为什么Pascal的Triangle计划不起作用?

时间:2013-02-09 15:48:54

标签: c++ pascals-triangle

行是用户输入的。

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;
}

当行为7时,它会给出正确的结果, 但是当输入的行大于8时,它会以某种方式崩溃。

1 个答案:

答案 0 :(得分:2)

很可能triangle没有为您使用的索引声明足够的内存。如果row==column==8那么您需要声明它:

double triangle[9][9];

因为C ++使用从零开始的索引,所以允许索引在0到8的范围内。很可能你的声明是这样的:

double triangle[8][8];