Програма C ++ за умножаване на две матрици с помощта на многомерни масиви

Тази програма взема две матрици от порядък r1 * c1 и r2 * c2 съответно. След това програмата умножава тези две матрици (ако е възможно) и ги показва на екрана.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C ++:

  • C ++ Многомерни масиви
  • C ++ масиви

За да се умножат две матрици, броят на колоните от първата матрица трябва да бъде равен на броя на редовете към втората матрица. Тази програма показва грешката, докато броят на колоните на първата матрица не бъде равен на броя на редовете на втората матрица.

Пример: Умножете две матрици, без да използвате функции

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

Изход

Въведете редове и колона за първа матрица: 3 2 Въведете редове и колона за втора матрица: 3 2 Грешка! колона от първа матрица не е равна на ред от втора. Въведете редове и колона за първа матрица: 2 3 Въведете редове и колона за втора матрица: 3 2 Въведете елементи от матрица 1: Въведете елементи a11: 3 Въведете елементи a12: -2 Въведете елементи a13: 5 Въведете елементи a21: 3 Въведете елементи a22 : 0 Въвеждане на елементи a23: 4 Въвеждане на елементи на матрица 2: Въвеждане на елементи b11: 2 Въвеждане на елементи b12: 3 Въвеждане на елементи b21: -9 Въвеждане на елементи b22: 0 Въвеждане на елементи b31: 0 Въвеждане на елементи b32: 4 Изходна матрица: 24 29 6 25

В тази програма потребителят трябва първо да въведе размера на две матрици.

Колоната на първата матрица трябва да бъде равна на реда на втората матрица за умножение. Ако това условие не е изпълнено, размерът на матрицата отново се пита с помощта на цикъл while.

След това потребителят трябва да въведе две матрици и накрая изходът на две матрици се изчислява и показва.

Тъй като програмата е дълга и трудна за отстраняване на грешки, по-добре е да я решите, като я предадете на функция.

Посетете тази страница, за да научите за умножаването на матрици чрез предаване на масиви на функция.

Интересни статии...