2013-02-09 3 views
0

Строка вводится пользователем.Почему эта программа Треугольника Паскаля не работает?

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

Просьба показать остальную часть кода. В частности, объявление треугольника. –

ответ

2

Скорее всего triangle не объявлена ​​с достаточным объемом памяти для индексов вы использовать. Если row==column==8 то вам нужно объявить его как это:

double triangle[9][9]; 

Поскольку C++ использует нуля на основе индексов, это позволяет для индексов в диапазоне от 0 до 8 включительно. Скорее всего, ваша декларация такова:

double triangle[8][8]; 
+0

Wew. Благодарю. Я забыл об этом. Извините, новичок здесь. – user2027369

+0

Если ответ правильный, вы должны его принять –

Смежные вопросы