C ++ - program för att multiplicera två matriser med hjälp av flerdimensionella matriser

Detta program tar två matriser i ordningen r1 * c1 respektive r2 * c2. Sedan multiplicerar programmet dessa två matriser (om möjligt) och visar det på skärmen.

För att förstå detta exempel bör du ha kunskap om följande C ++ programmeringsämnen:

  • C ++ flerdimensionella matriser
  • C ++ -arrayer

För att multiplicera två matriser bör antalet kolumner i den första matrisen vara lika med antalet rader till den andra matrisen. Detta program visar felet tills antalet kolumner i den första matrisen är lika med antalet rader i den andra matrisen.

Exempel: Multiplicera två matriser utan att använda funktioner

 #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; ) 

Produktion

Ange rader och kolumn för första matrisen: 3 2 Ange rader och kolumn för andra matrisen: 3 2 Fel! kolumn i den första matrisen inte lika med raden i den andra. Ange rader och kolumn för första matrisen: 2 3 Ange rader och kolumn för andra matrisen: 3 2 Ange element i matris 1: Ange element a11: 3 Ange element a12: -2 Ange element a13: 5 Ange element a21: 3 Ange element a22 : 0 Ange element a23: 4 Ange element i matris 2: Ange element b11: 2 Ange element b12: 3 Ange element b21: -9 Ange element b22: 0 Ange element b31: 0 Ange element b32: 4 Utmatningsmatris: 24 29 6 25

I detta program uppmanas användaren att ange storleken på två matriser först.

Kolumnen i den första matrisen ska vara lika med raden i den andra matrisen för multiplikation. Om detta villkor inte uppfylls, frågas storleken på matrisen igen med hjälp av en loop.

Därefter uppmanas användaren att ange två matriser och slutligen beräknas och visas utmatningen från två matriser.

Eftersom programmet är långt och svårt att felsöka är det bättre att lösa detta program genom att skicka det till en funktion.

Besök den här sidan för att lära dig att multiplicera matriser genom att skicka matriser till en funktion.

Intressanta artiklar...