Програма 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.

Потім користувачеві пропонується ввести дві матриці і, нарешті, вихід двох матриць обчислюється і відображається.

Оскільки програма довга і важка для налагодження, краще вирішити цю програму, передавши її функції.

Відвідайте цю сторінку, щоб дізнатись про множення матриць шляхом передачі масивів функції.

Цікаві статті...