Почему эта программа треугольника Паскаля не работает?

Строка вводится пользователем.

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.

0

Решение

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

double triangle[9][9];

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

double triangle[8][8];
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]