C ++ program két mátrix szaporításához többdimenziós tömbök segítségével

Ez a program két r1 * c1 és r2 * c2 sorrendű mátrixot vesz fel. Ezután a program megszorozza ezt a két mátrixot (ha lehetséges), és megjeleníti a képernyőn.

A példa megértéséhez ismernie kell a következő C ++ programozási témákat:

  • C ++ többdimenziós tömbök
  • C ++ tömbök

Két mátrix szorzásához az első mátrix oszlopainak számának meg kell egyeznie a második mátrix sorainak számával. Ez a program addig jeleníti meg a hibát, amíg az első mátrix oszlopainak száma meg nem egyezik a második mátrix sorainak számával.

Példa: Két mátrix szorzása függvények használata nélkül

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

Kimenet

Írja be az első mátrix sorait és oszlopát: 3 2 Írja be a második mátrix sorait és oszlopát: 3 2 Hiba! az első mátrix oszlopa nem egyenlő a második sorral. Írja be az első mátrix sorait és oszlopát: 2 3 Írja be a második mátrix sorait és oszlopát: 3 2 Írja be az 1. mátrix elemeit: Írja be az a11 elemeket: 3 Írja be az a12 elemeket: 2 Írja be az a13 elemeket: 5 Írja be az a21 elemeket: 3 Írja be az a22 elemeket : 0 Adja meg az a23 elemeket: 4 Írja be a 2. mátrix elemeit: Írja be a b11 elemeket: 2 Írja be a b12 elemeket: 3 Írja be a b21 elemeket: -9 Adja meg a b21 elemeket: 0 Írja be a b22 elemeket: 0 Írja be a b31 elemeket: 0 Írja be a b32 elemeket: 4 Kimeneti mátrixok: 24 29 6 25

Ebben a programban a felhasználót először arra kérjük, hogy adja meg a két mátrix méretét.

Az első mátrix oszlopának meg kell egyeznie a második mátrix sorával a szorzáshoz. Ha ez a feltétel nem teljesül, akkor ismét megkérdezzük a mátrix méretét a while ciklus használatával.

Ezután a felhasználót kéri, hogy adjon meg két mátrixot, végül kiszámítja és megjeleníti a két mátrix kimenetét.

Mivel a program hosszú és nehezen hibakereshető, jobb ezt a programot úgy megoldani, hogy átadjuk egy függvénynek.

Látogasson el erre az oldalra, ha többet szeretne megtudni a mátrixok szorzásáról tömbök átadásával egy függvényhez.

érdekes cikkek...