2013-02-09 86 views
0

行是用戶輸入的。這個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

+4

請顯示其餘的代碼。特別是「三角形」的聲明。 – 2013-02-09 15:49:57

回答

2

最有可能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