Matrici în C++

- Atestat de Informatică, 2027

5. TRANSPUSA MATRICEI

Ce este transpusa?

Transpusa unei matrici A (n×m) este matricea B (m×n) obținută prin interschimbarea liniilor cu coloanele. Regula: B[i][j] = A[j][i]

#include <iostream>
using namespace std;

int main() {
    int n = 2, m = 3;
    int a[2][3] = {{1, 2, 3},
                    {4, 5, 6}};

    int t[3][2];  // transpusa: dimensiunile se inverseaza (m x n)

    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            t[j][i] = a[i][j];  // inversam indicii!

    cout << "Matricea originala (2x3):\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++)
            cout << a[i][j] << " ";
        cout << "\n";
    }
    cout << "Transpusa (3x2):\n";
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++)
            cout << t[i][j] << " ";
        cout << "\n";
    }
    return 0;
}
Original A (2×3)Transpusă T (3×2)Relația
a[0][0] = 1t[0][0] = 1t[j][i] = a[i][j]
a[0][1] = 2t[1][0] = 2t[j][i] = a[i][j]
a[1][0] = 4t[0][1] = 4t[j][i] = a[i][j]
a[1][2] = 6t[2][1] = 6t[j][i] = a[i][j]