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;
}