Mam do napisania do szkoły programik, który stworzy mi macierz odwrotną - czytałem o tym trochę w necie, ale coś chyba nie do końca zrozumiełem, bo nie jestem pewien, czy ten kod dobrze działa. I nie, nie chodzi mi o macierz transponowaną, tylko odwrotną ;)
#include <iostream>
using namespace std;
int** odwrocMacierz(int r, int c, int **a){
int **b = new int*[c];
for(int i=0; i<c; i++)
b[i] = new int[r];
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
if(a[i][j] < 0)
b[j][i] = -a[i][j];
else
b[j][i] = a[i][j];
}
}
return b;
}
int main(int argc, char **argv)
{
int n, m;
cout << "Liczba wierszy: ";
cin >> n;
cout << "Liczba kolumn: ";
cin >> m;
int **macierz = new int*[n];
for(int i=0; i<n; i++)
macierz[i] = new int[m];
int **macierzT;
for(int i = 0; i < n; i++) //wstawianie danych
{
for(int j = 0;j < m; j++)
{
cout << "Wyraz [" << i << "][" << j << "]: ";
cin >> macierz[i][j];
}
}
macierzT = odwrocMacierz(n,m,macierz);
cout << "Macierz:" << endl;
for(int i = 0; i < n; i++) //wyswietlanie macierzy
{
for(int j = 0;j < m; j++)
{
cout << macierz[i][j] << " ";
}
cout << endl;
}
cout << endl;
cout << "Macierz odwrotna:" << endl;
for(int i = 0; i < m; i++) //wyswietlanie macierzy odwrotnej
{
for(int j = 0;j < n; j++)
{
cout << macierzT[i][j] << " ";
}
cout << endl;
}
system("PAUSE");
return 0;
}