#include <conio.h>
#include <stdio.h>
#define max 100
/*Hàm nhập ma trận hệ số*/
void NhapMaTran(float A[max][max], int m, int n, char ch) {
for(int i = 0; i<m; i++)
for(int j = 0; j<n; j++) {
printf("%c[%d][%d] = ",ch,i,j);
scanf("%f",&A[i][j]);
}
}
/* Hàm xuất ma trận*/
void XuatMaTran(float A[max][max], int m, int n) {
for(int i=0 ; i<m; i++){
printf("\n");
for(int j=0 ; j<n; j++)
printf("%-4g",A[i][j]);
}
}
/*C = A+B*/
void CongMaTran(float A[max][max], float B[max][max], float C[max][max], int m, int n) {
for(int i = 0; i<m; i++)
for(int j = 0; j<n; j++)
C[i][j] = A[i][j]+B[i][j];
}
/*A cap mxn * B cap nxp = C cap mxp*/
void NhanMaTran(float A[max][max],float B[max][max], float C[max][max],int m,int n,int p){
for(int i = 0; i<m; i++)
for(int k = 0; k<p; k++) {
C[i][k]=0;
for(int j = 0; j<n; j++)
C[i][k] = C[i][k]+A[i][j]*B[j][k];
}
}
/*Chuong trinh chinh*/
int main() {
int m,n,p;
float A[max][max],B[max][max],C[max][max],D[max][max];
printf("Nhap m = ");
scanf("%d",&m);
printf("Nhap n = ");
scanf("%d",&n);
printf("Nhap p = ");
scanf("%d",&p);
printf("Nhap ma tran A cap %d x %d \n",m,n);
NhapMaTran(A,m,n,'A');
printf("Nhap ma tran B cap %d x %d \n",m,n);
NhapMaTran(B,m,n,'B');
printf("Nhap ma tran B cap %d x %d \n",n,p);
NhapMaTran(C,n,p,'C');
printf("\nMa tran A\n");
XuatMaTran(A,m,n);
getch();
printf("\nMa tran B\n");
XuatMaTran(B,m,n);
getch();
printf("\nMa tran C\n");
XuatMaTran(C,n,p);
getch();
printf("\nMa tran D = A+B\n");
CongMaTran(A,B,D,m,n);
XuatMaTran(D,m,n);
getch();
printf("\nMa tran D = A*B\n");
NhanMaTran(A,C,D,m,n,p);
XuatMaTran(D,n,p);
getch();
return 0;
}
Trang chủ >>
Lập trình căn bản >>
Lập trình căn bản C: Thao tác mảng 2 chiều bằng ví dụ các phép toán trên ma trận
Lập trình căn bản C: Thao tác mảng 2 chiều bằng ví dụ các phép toán trên ma trận
Từ khóa
Bài liên quan
Bài liên quan
<<
Bài mới hơn
Bài cũ hơn
>>