Chương trình C ++ để nhân hai ma trận bằng cách sử dụng mảng đa chiều

Chương trình này nhận hai ma trận có thứ tự lần lượt là r1 * c1 và r2 * c2. Sau đó, chương trình nhân hai ma trận này (nếu có thể) và hiển thị trên màn hình.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình C ++ sau:

  • Mảng đa chiều trong C ++
  • Mảng C ++

Để nhân hai ma trận, số cột của ma trận thứ nhất phải bằng số hàng của ma trận thứ hai. Chương trình này hiển thị lỗi cho đến khi số cột của ma trận thứ nhất bằng số hàng của ma trận thứ hai.

Ví dụ: Nhân hai ma trận mà không sử dụng hàm

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

Đầu ra

Nhập hàng và cột cho ma trận thứ nhất: 3 2 Nhập hàng và cột cho ma trận thứ hai: 3 2 Error! cột của ma trận đầu tiên không bằng hàng thứ hai. Nhập hàng và cột cho ma trận thứ nhất: 2 3 Nhập hàng và cột cho ma trận thứ hai: 3 2 Nhập các phần tử của ma trận 1: Nhập các phần tử a11: 3 Nhập các phần tử a12: -2 Nhập các phần tử a13: 5 Nhập các phần tử a21: 3 Nhập các phần tử a22 : 0 Nhập các phần tử a23: 4 Nhập các phần tử của ma trận 2: Nhập các phần tử b11: 2 Nhập các phần tử b12: 3 Nhập các phần tử b21: -9 Nhập các phần tử b22: 0 Nhập các phần tử b31: 0 Nhập các phần tử b32: 4 Nhập Ma trận: 24 29 6 25

Trong chương trình này, người dùng được yêu cầu nhập kích thước của hai ma trận lúc đầu.

Cột của ma trận đầu tiên phải bằng hàng của ma trận thứ hai cho phép nhân. Nếu điều kiện này không được thỏa mãn thì kích thước của ma trận lại được hỏi bằng cách sử dụng vòng lặp while.

Sau đó, người dùng được yêu cầu nhập hai ma trận và cuối cùng đầu ra của hai ma trận được tính toán và hiển thị.

Vì chương trình dài và khó gỡ lỗi, tốt hơn nên giải quyết chương trình này bằng cách chuyển nó cho một hàm.

Truy cập trang này để tìm hiểu về cách nhân ma trận bằng cách chuyển mảng cho một hàm.

thú vị bài viết...