Program C ++ za množenje dveh matric z uporabo večdimenzionalnih nizov

Ta program ima dve matriki reda r1 * c1 oziroma r2 * c2. Nato program pomnoži ti dve matriki (če je mogoče) in jo prikaže na zaslonu.

Če želite razumeti ta primer, morate poznati naslednje programske teme C ++:

  • Večdimenzionalni nizi C ++
  • Polja C ++

Če želite pomnožiti dve matriki, mora biti število stolpcev prve matrike enako številu vrstic v drugo matriko. Ta program prikazuje napako, dokler število stolpcev prve matrike ni enako številu vrstic druge matrike.

Primer: Pomnožite dve matriki brez uporabe funkcij

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

Izhod

Vnesite vrstice in stolpce za prvo matrico: 3 2 Vnesite vrstice in stolpce za drugo matrico: 3 2 Napaka! stolpec prve matrice ni enak vrstici druge. Vnesite vrstice in stolpce za prvo matrico: 2 3 Vnesite vrstice in stolpce za drugo matrico: 3 2 Vnesite elemente matrike 1: Vnesite elemente a11: 3 Vnesite elemente a12: -2 Vnesite elemente a13: 5 Vnesite elemente a21: 3 Vnesite elemente a22 : 0 Vnesite elemente a23: 4 Vnesite elemente matrike 2: Vnesite elemente b11: 2 Vnesite elemente b12: 3 Vnesite elemente b21: -9 Vnesite elemente b22: 0 Vnesite elemente b31: 0 Vnesite elemente b32: 4 Izhodna matrica: 24 29 6 25.

V tem programu uporabnik najprej vpiše velikost dveh matric.

Stolpec prve matrike mora biti enak vrstici druge matrike za množenje. Če ta pogoj potem ni izpolnjen, se znova vpraša velikost matrice z uporabo zanke while.

Nato je uporabnik pozvan, da vnese dve matriki in na koncu se izračuna in prikaže izhod dveh matric.

Ker je program dolgo in težko odpraviti napake, je bolje, da ga rešite tako, da ga prenesete v funkcijo.

Obiščite to stran, če želite izvedeti več o množenju matric s predajo nizov funkciji.

Zanimive Članki...