1 Góc học tập ➢
2 Tin học đại cương ➢
3 Bài thực hành số 5
Tích 2 ma trận A và B là ma trận C được tính bởi công thức:
Cij=Ai1+B1j+Ai2+B2j+Ai3+B3j+...+Aik+Bkj (i=0,m-1 ; j=0,n-1)
Tính ma trận tích C và in kết quả ra màn hình.
#include <bits/stdc++.h>
main()
{int m,k,n,i,j,t,a;
printf("Nhap cap cua ma tran A(m,k) va cap ma tran B(k,n) :");
do{printf("\n Note: m,k,n>=1");
printf("\n m= "); scanf("%d",&m);
printf("\n k= "); scanf("%d",&k);
printf("\n n= "); scanf("%d",&n);}
while(m<1||k<1||n<1);
int A[m][k],B[k][n],C[m][n];
printf("\n Nhap cac phan tu cua ma tran A:");
for(i=0;i<m;i++)
for(j=0;j<k;j++)
{printf ("\n Phan tu A(%d;%d)=",i+1,j+1);
scanf("%d",&A[i][j]);}
printf("\n Nhap cac phan tu cua ma tran B:");
for(i=0;i<k;i++)
for(j=0;j<n;j++)
{printf ("\n Phan tu B(%d;%d)=",i+1,j+1);
scanf("%d",&B[i][j]);}
printf("\n Ma tran A la :\n");
for(i=0;i<m;i++)
{printf("\n\n");
for(j=0;j<k;j++) printf("%6d",A[i][j]);}
printf("\n Ma tran B la :\n");
for(i=0;i<k;i++)
{printf("\n\n");
for(j=0;j<n;j++) printf("%6d",B[i][j]);}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{C[i][j]=0;
for(t=0;t<k;t++)
C[i][j]=C[i][j]+A[i][t]*B[t][j];}
printf("\n Ma tran tich C=A.B la :\n");
for(i=0;i<m;i++)
{printf("\n\n");
for(j=0;j<n;j++) printf("%6d",C[i][j]);}
getch();
}