Ответ: Симметричная матрица
Попробуй так, минус (-) я так понял значит эдемент не будет храниться в таблице.
int m;
cout <<"enter m:";
cin >>m;
int **mas=new int *[m-1];
int **tmp=mas;
for (int i=1; i<m; i++, tmp++)
*tmp=new int [i];
tmp=mas+m-2;
cout <<"enter simmetri4nuu matricu:"<<endl;
for (int i=0; i<m; i++)
{
cout <<"enter "<<(i+1)<<" stroku:"<<endl;
int k=0;
for (int j=0; j<m; j++)
{
if (j<=i)
{
int t;
cout <<"\n-";
cin >>t;
}
else
{
cout <<"\n+";
cin >>*(*tmp+k);
++k;
}
}
tmp--;
}
tmp=mas;
for (int i=0;i<m-1;++i){
for (int j=0;j<i+1;++j)
printf("%d ",tmp[i][j]);
printf("\n");
}
getch();
return 0;
Добавлено через 12 минут
for (int i=0; i<m; i++, mas++)
*mas=new int [i];
обрати внимание на этот фрагмент,тут ты создаёшь таблицу размером 0.А потом в цикле где вводишь элементы начинаешь вписывать элемент строки в таблицу размером 0.
Добавлено через 21 минуту
Замени for (int i=1; i<=m; i++, mas++)
И тут cin >>**(mas+j); замени
на *(*mas+j); чтобы правильно перемещаться по таблице, отсюда ошибка обращения к памети.
Последний раз редактировалось flipBoy; 02.04.2008 в 03:32..
Причина: Добавлено сообщение
|