C ++ - program til multiplikation af to matrixer ved hjælp af multidimensionelle arrays

Dette program tager to matricer af henholdsvis orden r1 * c1 og r2 * c2. Derefter multiplicerer programmet disse to matricer (hvis det er muligt) og viser det på skærmen.

For at forstå dette eksempel skal du have kendskab til følgende C ++ programmeringsemner:

  • C ++ flerdimensionelle arrays
  • C ++ Arrays

For at multiplicere to matricer skal antallet af kolonner i den første matrix være lig med antallet af rækker til den anden matrix. Dette program viser fejlen, indtil antallet af kolonner i den første matrix er lig med antallet af rækker i den anden matrix.

Eksempel: Multiplicer to matricer uden at bruge 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

Indtast rækker og kolonne for første matrix: 3 2 Indtast rækker og kolonne for anden matrix: 3 2 Fejl! kolonne i første matrix ikke lig med række i anden. Indtast rækker og kolonne til første matrix: 2 3 Indtast rækker og kolonne til anden matrix: 3 2 Indtast element i matrix 1: Indtast element a11: 3 Indtast element a12: -2 Indtast element a13: 5 Indtast element a21: 3 Indtast element a22 : 0 Indtast elementerne a23: 4 Indtast elementerne i matrix 2: Indtast elementerne b11: 2 Indtast elementerne b12: 3 Indtast elementerne b21: -9 Indtast elementerne b22: 0 Indtast elementerne b31: 0 Indtast elementerne b32: 4 Outputmatrix: 24 29 6 25

I dette program bliver brugeren bedt om først at indtaste størrelsen på to matrixer.

Kolonnen i den første matrix skal være lig med rækken i den anden matrix til multiplikation. Hvis denne betingelse ikke er opfyldt, bliver størrelsen af ​​matrix igen spurgt ved hjælp af mens loop.

Derefter bliver brugeren bedt om at indtaste to matrixer, og til sidst beregnes og vises output fra to matrixer.

Da programmet er langt og svært at fejle, er det bedre at løse dette program ved at overføre det til en funktion.

Besøg denne side for at lære om at multiplicere matricer ved at overføre arrays til en funktion.

Interessante artikler...