Program C ++ za množenje dvije matrice pomoću višedimenzionalnih nizova

Ovaj program uzima dvije matrice reda r1 * c1 i r2 * c2. Zatim program množi ove dvije matrice (ako je moguće) i prikazuje ih na ekranu.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja na C ++:

  • C ++ višedimenzionalni nizovi
  • C ++ nizovi

Da biste pomnožili dvije matrice, broj stupaca prve matrice trebao bi biti jednak broju redaka u drugu matricu. Ovaj program prikazuje pogrešku sve dok broj stupaca prve matrice ne bude jednak broju redaka druge matrice.

Primjer: Pomnožite dvije matrice bez upotrebe funkcija

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

Izlaz

Unesite retke i stupac za prvu matricu: 3 2 Unesite retke i stupac za drugu matricu: 3 2 Pogreška! stupac prve matrice nije jednak retku druge. Unesite retke i stupac za prvu matricu: 2 3 Unesite retke i stupac za drugu matricu: 3 2 Unesite elemente matrice 1: Unesite elemente a11: 3 Unesite elemente a12: -2 Unesite elemente a13: 5 Unesite elemente a21: 3 Unesite elemente a22 : 0 Unesite elemente a23: 4 Unesite elemente matrice 2: Unesite elemente b11: 2 Unesite elemente b12: 3 Unesite elemente b21: -9 Unesite elemente b22: 0 Unesite elemente b31: 0 Unesite elemente b32: 4 Izlazna matrica: 24 29 6 25

U ovom programu od korisnika se traži da prvo unese veličinu dvije matrice.

Stupac prve matrice trebao bi biti jednak redu druge matrice za množenje. Ako tada taj uvjet nije zadovoljen, veličina matrice se ponovno pita pomoću while petlje.

Zatim se od korisnika traži da unese dvije matrice i na kraju se izračuna i prikaže izlaz dvije matrice.

Budući da je program dug i težak za otklanjanje pogrešaka, bolje je riješiti ovaj program tako da ga proslijedite funkciji.

Posjetite ovu stranicu da biste saznali više o umnožavanju matrica prosljeđivanjem nizova funkciji.

Zanimljivi članci...