Строка вводится пользователем.
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
тогда вам нужно объявить это так:
double triangle[9][9];
Поскольку C ++ использует индексы, начинающиеся с нуля, это позволяет использовать индексы в диапазоне от 0 до 8 включительно. Скорее всего, ваша декларация выглядит так:
double triangle[8][8];
Других решений пока нет …