C ++ - programma om twee matrixen te vermenigvuldigen met behulp van multidimensionale arrays

Dit programma heeft twee matrices van respectievelijk de orde r1 * c1 en r2 * c2. Vervolgens vermenigvuldigt het programma deze twee matrices (indien mogelijk) en geeft deze weer op het scherm.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C ++ programmeeronderwerpen:

  • C ++ multidimensionale arrays
  • C ++ arrays

Om twee matrices te vermenigvuldigen, moet het aantal kolommen van de eerste matrix gelijk zijn aan het aantal rijen naar de tweede matrix. Dit programma geeft de fout weer totdat het aantal kolommen van de eerste matrix gelijk is aan het aantal rijen van de tweede matrix.

Voorbeeld: vermenigvuldig twee matrices zonder functies te gebruiken

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

Uitvoer

Voer rijen en kolommen in voor de eerste matrix: 3 2 Voer rijen en kolommen in voor de tweede matrix: 3 2 Fout! kolom van eerste matrix is ​​niet gelijk aan rij van tweede. Voer rijen en kolommen in voor eerste matrix: 2 3 Voer rijen en kolommen in voor tweede matrix: 3 2 Voer elementen van matrix in 1: Voer elementen in a11: 3 Voer elementen in a12: -2 Voer elementen in a13: 5 Voer elementen in a21: 3 Voer elementen in a22 : 0 Voer elementen in a23: 4 Voer elementen van matrix in 2: Voer elementen in b11: 2 Voer elementen in b12: 3 Voer elementen in b21: -9 Voer elementen in b22: 0 Voer elementen in b31: 0 Voer elementen in b32: 4 Uitvoermatrix: 24 29 6 25

In dit programma wordt de gebruiker gevraagd om eerst de grootte van twee matrixen in te voeren.

De kolom van de eerste matrix moet gelijk zijn aan de rij van de tweede matrix voor vermenigvuldiging. Als niet aan deze voorwaarde is voldaan, wordt de grootte van de matrix opnieuw gevraagd met de while-lus.

Vervolgens wordt de gebruiker gevraagd om twee matrixen in te voeren en ten slotte wordt de uitvoer van twee matrix berekend en weergegeven.

Aangezien het programma lang is en moeilijk te debuggen, is het beter om dit programma op te lossen door het aan een functie door te geven.

Bezoek deze pagina voor meer informatie over het vermenigvuldigen van matrices door arrays door te geven aan een functie.

Interessante artikelen...