C ++ - Programm zum Multiplizieren von zwei Matrizen mit mehrdimensionalen Arrays

Dieses Programm verwendet zwei Matrizen der Ordnung r1 * c1 bzw. r2 * c2. Anschließend multipliziert das Programm diese beiden Matrizen (falls möglich) und zeigt sie auf dem Bildschirm an.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden C ++ - Programmierthemen kennen:

  • Mehrdimensionale C ++ - Arrays
  • C ++ - Arrays

Um zwei Matrizen zu multiplizieren, sollte die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix sein. Dieses Programm zeigt den Fehler an, bis die Anzahl der Spalten der ersten Matrix der Anzahl der Zeilen der zweiten Matrix entspricht.

Beispiel: Multiplizieren Sie zwei Matrizen ohne Verwendung von Funktionen

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

Ausgabe

Geben Sie Zeilen und Spalten für die erste Matrix ein: 3 2 Geben Sie Zeilen und Spalten für die zweite Matrix ein: 3 2 Fehler! Spalte der ersten Matrix ungleich Zeile der zweiten. Geben Sie Zeilen und Spalten für die erste Matrix ein: 2 3 Geben Sie Zeilen und Spalten für die zweite Matrix ein: 3 2 Geben Sie Elemente der Matrix ein 1: Geben Sie Elemente ein a11: 3 Geben Sie Elemente ein a12: -2 Geben Sie Elemente ein a13: 5 Geben Sie Elemente ein a21: 3 Geben Sie Elemente a22 ein : 0 Elemente eingeben a23: 4 Elemente der Matrix eingeben 2: Elemente eingeben b11: 2 Elemente eingeben b12: 3 Elemente eingeben b21: -9 Elemente eingeben b22: 0 Elemente eingeben b31: 0 Elemente eingeben b32: 4 Matrix ausgeben: 24 29 6 25

In diesem Programm wird der Benutzer zunächst aufgefordert, die Größe von zwei Matrizen einzugeben.

Die Spalte der ersten Matrix sollte für die Multiplikation gleich der Zeile der zweiten Matrix sein. Wenn diese Bedingung nicht erfüllt ist, wird die Größe der Matrix erneut mit der while-Schleife abgefragt.

Anschließend wird der Benutzer aufgefordert, zwei Matrizen einzugeben, und schließlich wird die Ausgabe von zwei Matrizen berechnet und angezeigt.

Da das Programm lang und schwer zu debuggen ist, ist es besser, dieses Programm zu lösen, indem Sie es an eine Funktion übergeben.

Besuchen Sie diese Seite, um mehr über das Multiplizieren von Matrizen durch Übergeben von Arrays an eine Funktion zu erfahren.

Interessante Beiträge...