行是用户输入的。
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时,它会以某种方式崩溃。
答案 0 :(得分:2)
很可能triangle
没有为您使用的索引声明足够的内存。如果row==column==8
那么您需要声明它:
double triangle[9][9];
因为C ++使用从零开始的索引,所以允许索引在0到8的范围内。很可能你的声明是这样的:
double triangle[8][8];