Trang chủLập trìnhLập trình C/C++Cộng hai ma trận trong lập trình C/C++

Cộng hai ma trận trong lập trình C/C++

Đâ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.

Cộng hai ma trận trong lập trình C/C++

Điều kiện để cộng 2 ma trận là 2 ma trận phải có cùng kích thước, tức là số hàng và số cột của hai ma trận phải bằng nhau.

Gọi mảng 2 chiều A là ma trận A, mảng 2 chiều B là ma trận B, để cộng 2 ma trận này ta chỉ việc cộng các phần tử có cùng vị trí với nhau thành 1 ma trận.

Ta sẽ 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]);
		}
	}
}
//Hàm xuất ma trận
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");
	}
}

//Hàm cộng 2 ma trận
int congMaTran(int a[][100], int b[][100], int n, int m){
	int	c[100][100];
	
	int i, j;
	for(i = 0;i<n;i++){
		for(j = 0;j<m;j++){
			c[i][j] = a[i][j] + b[i][j];
		}
	}
	
	printf("\nCONG 2 MA TRAN A B\n");
	output(n,m,c);
}

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(n, m, b);

	
	printf("\n------MA TRAN A-----\n");
	output(n,m,a);
	printf("\n------MA TRAN B-----\n");
	output(n,m,b);
	
	if(n == n1 && m == m1){
		congMaTran(a,b,n,m);
	}else{
		printf("So hang va so cot 2 ma tran khong bang nhau, khong the cong");
	}
	return 0;
}

Chuyển thành chương trình trên C++

#include <iostream>
using namespace std;

void intput(int n, int m, int a[][100]){
	int i,j;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++) {
			cin>>a[i][j];
		}
	}
}
void output(int n, int m, int a[][100]){
	int i,j;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++) {
			cout<<a[i][j]<<"   ";
		}
		cout<<"\n";
	}
}

int congMaTran(int a[][100], int b[][100], int n, int m){
	int	c[100][100];
	
	int i, j;
	for(i = 0;i<n;i++){
		for(j = 0;j<m;j++){
			c[i][j] = a[i][j] + b[i][j];
		}
	}
	
	cout<<"\nCONG 2 MA TRAN A B\n";
	output(n,m,c);
}

int main()
{
	int n, m;
	cout<<"MA TRAN A:\nNhap so hang, so cot lan luot: ";
	cin>>n>>m;
	int a[100][100];
	cout<<"\n------Nhap phan tu ma tran A-----\n";
	intput(n, m, a);
	
	int n1, m1;
	cout<<"MA TRAN B:\nNhap so hang, so cot lan luot: ";
	cin>>n1>>m1;
	int b[100][100];
	cout<<"\n------Nhap phan tu ma tran B-----\n";
	intput(n, m, b);

	
	cout<<"\n------MA TRAN A-----\n";
	output(n,m,a);
	cout<<"\n------MA TRAN B-----\n";
	output(n,m,b);
	
	if(n == n1 && m == m1){
		congMaTran(a,b,n,m);
	}else{
		cout<<"So hang va so cot 2 ma tran khong bang nhau, khong the cong";
	}
	return 0;
}

Bạn chạy thử chương trình nhé!

[Xem tất cả bài viết chủ đề C/C++ tại đây]

0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x