Tính Tích 2 Ma Trận(Nhân 2 Ma Trận) Trong Lập Trình C/C++
Có thể bạn quan tâm
Đây là một dạng bài tập đơn giản và tương đối cơ bản giúp cho việc luyện tập code lập trình C/C++ mang lại hiệu quả rất tốt.
DANH SÁCH BÀI VIẾT Bài tập Ma trận trong lập trình hướng đối tượng OOP C/C++ Tìm phần tử max min trong mảng lập trình C/C++ Tính tích 2 ma trận(Nhân 2 ma trận) trong lập trình C/C++ Cộng hai ma trận trong lập trình C/C++ Sắp xếp mảng 2 chiều trong lập trình C/C++
Tính tích 2 ma trận(Nhân 2 ma trận trận) trong lập trình C/C++
Phép nhân hai ma trận chỉ thực hiện được khi số lượng cột trong ma trận thứ nhất phải bằng số lượng hàng trong ma trận thứ hai. Ma trận kết quả, được gọi là tích ma trận, có số lượng hàng của ma trận đầu tiên và số cột của ma trận thứ hai.
Nếu ma trận A có kích thước (m×n) và ma trận B có kích thước (n×p), thì ma trận tích C=A×B có kích thước (m×p), phần tử đứng ở hàng thứ i, cột thứ j xác định bởi công thức:
Vậy đã có công thức, ta viết chương trình C như sau:
#include <stdio.h> //Hàm nhập ma trân void intput(int n, int m, int a[][100]){ int i,j; for(i=0;i<n;i++){ for(j=0;j<m;j++) { scanf("%d", &a[i][j]); } } } //Ham xuat ma tran void output(int n, int m, int a[][100]){ int i,j; for(i=0;i<n;i++){ for(j=0;j<m;j++) { printf("%d ",a[i][j]); } printf("\n"); } } //Vi so cot va so hang cua ma tran A, B bang nhau nen ta khong cần truyền vào biến n1 int tichMaTran(int a[][100], int b[][100], int m, int n, int m1){ int c[100][100]; int i, j, k; for(i=0;i<n;i++) for(j=0;j<m1;j++) { int tt=0; for(k=0;k<m;k++) { tt = tt + (a[i][k] * b[k][j]); //Công thức tính C[i][j] } c[i][j] = tt; } printf("\nTICH 2 MA TRAN A B\n"); output(n,m1,c); //Ma trận tích có kích thước bằng số hàng của A và số cột cua B } int main() { int n, m; printf("MA TRAN A:\nNhap so hang, so cot lan luot: "); scanf("%d%d", &n, &m); int a[100][100]; printf("\n------Nhap phan tu ma tran A-----\n"); intput(n, m, a); int n1, m1; printf("MA TRAN B:\nNhap so hang, so cot lan luot: "); scanf("%d%d", &n1, &m1); int b[100][100]; printf("\n------Nhap phan tu ma tran B-----\n"); intput(n1, m1, b); printf("\n------MA TRAN A-----\n"); output(n,m,a); printf("\n------MA TRAN B-----\n"); output(n,m,b); if(m == n1){ tichMaTran(a,b,m,n,m1); }else{ printf("So cot Ma tran A khac so hang ma tran B, khong the nhan 2 ma tran nay"); } return 0; }Chương trình trên C++
- Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay
- Khóa học Java cơ bản dành cho người mới bắt đầu- Giảm 40% hôm nay
- Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%
Chạy thử chương trình để xem kết quả nhé!
[Xem tất cả bài viết chủ đề C/C++ tại đây]
3.2 6 Phiếu bình chọn Xếp hạng bài viếtTừ khóa » Tích Ma Trận Trong C
-
Nhân Ma Trận Trong C | 64 Bài Học Lập Trình C Hay Nhất
-
Nhân Ma Trận Trong C - Hoclaptrinh
-
Nhân 2 Ma Trận C++, Viết Chương Trình Như Thế Nào
-
C - Bài Tập 4.23: Tích Hai Ma Trận - YouTube
-
Nhập Xuất Ma Trận Trong C | Lập Trình Từ Đầu
-
Nhân Hai Ma Trận Trong C
-
Bài Tập Và Kiến Thức Về Nhân Na Trận Trong Lập Trình C - DevPro
-
Bài Tập C - Cộng Hai Ma Trận Trong C - VietTuts
-
Nhân Hai Ma Trận Trong C++ Như Thế Nào? - Cộng đồng C Việt
-
Tối ưu Cách Tính Tích Của Chuỗi Ma Trận - Viblo
-
Bài Tập C++ - Trừ Hai Ma Trận Trong C++ - VietTuts
-
Bài 55. Bài Tập Mảng 2 Chiều Có Lời Giải Code C/C++
-
Cách Nhân 2 Ma Trận