Автор: Vitaliy113 (04.04.2010 в 16:14)
Существует вот такая программа, которая транспонирует матрицу, работает идеально, так вот нужно чтобы мои двумерные массивы стали динамические. Как это сделать в обычной программе у меня не вызывает никаких сложностей, но вот здесь я что-то туплю, вообще ничего не получается(, помогите разобраться, пожалуйста. Спасибо
Мой код:
#include <stdafx.h>
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int i,j,n,m;
class TRMATR
{
int q,w,e,r;
int M[250][250];
public:
int MT[250][250];
TRMATR(){};
TRMATR(int i,int j,int n,int m,int D[250][250]){M[q][w]=D[i][j];e=n;r=m;};
friend istream &operator>>(istream &stream, TRMATR &ob2);
friend ostream &operator<<(ostream &stream, TRMATR ob2);
};
istream &operator>>(istream &stream, TRMATR &ob2)
{
{
cout<<"Enter number of rows: \n";
stream>>n;
cout<<"Enter number of columns: \n";
stream>>m;
system("cls");
cout<<"Enter the matrix elements:\n";
for(i=1;i<n+1;i++)
{
for(j=1;j<m+1;j++)
{
cout<<"element "<<i<<" "<<j<<"=";
stream>>ob2.M[i][j];
system("cls");
};
};
};
return stream;
}
ostream &operator<<(ostream &stream, TRMATR ob2)
{
{
cout<<" Initial matrix: \n";
for(i=1;i<n+1;i++)
{ cout<<" \n";
for(j=1;j<m+1;j++)
{
stream<<ob2.M[i][j]<<" ";
};
}
stream<<" \n" ;
}
cout<<"-----------------------------";
////////transposition/////////////
{
for(i=1;i<n+1;i++)
{
for(j=1;j<m+1;j++)
{
ob2.MT[j][i]=ob2.M[i][j];
};};};
{
cout<<"\n Transposed matrix: \n";
for(i=1;i<m+1;i++)
{ cout<<" \n";
for(j=1;j<n+1;j++)
{
stream<<ob2.MT[i][j]<<" ";
};};
stream<<" \n" ;
};
return stream;
}
void main()
{
TRMATR ob;
cin>>ob;
cout<<ob;
}