这个Pascal的三角形程序为什么不起作用?
问题描述:
行是用户输入的。这个Pascal的三角形程序为什么不起作用?
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;
}
它给出了正确的结果,当行就是七, 但是当输入行大于8
答
最有可能triangle
不具有足够的内存来索引宣布它在某种程度上你崩溃使用。如果row==column==8
那么你需要声明它是这样的:因为C++使用
double triangle[9][9];
从零开始指数这使得指数在0〜8范围内。最有可能你的声明是这样的:
double triangle[8][8];
+0
Wew。谢谢。我忘了那个。对不起,这里是新手。 – user2027369 2013-02-09 15:56:29
+0
如果答案是正确的,你应该接受它 – 2013-12-19 00:27:04
请显示其余的代码。特别是“三角形”的声明。 – 2013-02-09 15:49:57