Matrici în C++

- Atestat de Informatică, 2027

6. ÎNMULȚIREA A DOUĂ MATRICI

Condiție importantă!

Putem înmulți A (n×m) cu B (m×p) doar dacă numărul de coloane din A = numărul de linii din B. Rezultatul C va fi de dimensiune n×p. Formula: C[i][j] += A[i][k] * B[k][j]

#include <iostream>
using namespace std;

int main() {
    // A este 2x3, B este 3x2 => C va fi 2x2
    int A[2][3] = {{1,2,3}, {4,5,6}};
    int B[3][2] = {{7,8}, {9,10}, {11,12}};
    int C[2][2] = {};  // initializat cu 0

    int n=2, m=3, p=2;

    // Trei bucle imbricate
    for (int i = 0; i < n; i++)        // liniile din C
        for (int j = 0; j < p; j++)    // coloanele din C
            for (int k = 0; k < m; k++)  // suma produselor
                C[i][j] += A[i][k] * B[k][j];

    cout << "Rezultat C = A x B:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < p; j++)
            cout << C[i][j] << "\t";
        cout << "\n";
    }
    // C[0][0]=58, C[0][1]=64, C[1][0]=139, C[1][1]=154

    return 0;
}

Vizualizare operație:

A (2×3)

1
2
3
4
5
6
×

B (3×2)

7
8
9
10
11
12
=

C (2×2)

58
64
139
154
BuclăVariabilăRol
ExterioarăiParcurge liniile matricei rezultat C
MijlocjParcurge coloanele matricei rezultat C
InterioarăkCalculează suma produselor pentru C[i][j]