Programma C ++ per moltiplicare due matrici utilizzando array multidimensionali

Questo programma accetta due matrici di ordine r1 * c1 e r2 * c2 rispettivamente. Quindi, il programma moltiplica queste due matrici (se possibile) e le visualizza sullo schermo.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione C ++:

  • Array multidimensionali C ++
  • Array C ++

Per moltiplicare due matrici, il numero di colonne della prima matrice dovrebbe essere uguale al numero di righe della seconda matrice. Questo programma visualizza l'errore fino a quando il numero di colonne della prima matrice è uguale al numero di righe della seconda matrice.

Esempio: moltiplica due matrici senza utilizzare le funzioni

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Produzione

Immettere righe e colonne per la prima matrice: 3 2 Immettere righe e colonne per la seconda matrice: 3 2 Errore! colonna della prima matrice non uguale alla riga della seconda. Immettere righe e colonne per la prima matrice: 2 3 Immettere righe e colonne per la seconda matrice: 3 2 Immettere elementi della matrice 1: Immettere elementi a11: 3 Immettere elementi a12: -2 Immettere elementi a13: 5 Immettere elementi a21: 3 Immettere elementi a22 : 0 Immettere elementi a23: 4 Immettere elementi della matrice 2: Immettere elementi b11: 2 Immettere elementi b12: 3 Immettere elementi b21: -9 Immettere elementi b22: 0 Immettere elementi b31: 0 Immettere elementi b32: 4 Matrice di output: 24 29 6 25

In questo programma, all'utente viene inizialmente chiesto di inserire la dimensione di due matrici.

La colonna della prima matrice dovrebbe essere uguale alla riga della seconda matrice per la moltiplicazione. Se questa condizione non è soddisfatta, viene nuovamente richiesta la dimensione della matrice utilizzando il ciclo while.

Quindi, all'utente viene chiesto di inserire due matrici e infine viene calcolato e visualizzato l'output di due matrici.

Poiché il programma è lungo e difficile da eseguire il debug, è meglio risolvere questo programma passandolo a una funzione.

Visita questa pagina per informazioni su come moltiplicare le matrici passando gli array a una funzione.

Articoli interessanti...