#include"stdio.h"
#define MAXN 100
struct matrix{
int n,m;
int data[MAXN][MAXN];
};
int mul(struct matrix* c, struct matrix* a,struct matrix* b)
{
int i, j, k;
if (a->m != b->n)
return 0;
c->n = a->m;
c->m = b->n;
for (i = 0; i < c->n; i++)
for (j = 0; j < c->m; j++)
for (c->data[i][j] = k = 0; k < a->m; k++)
c->data[i][j] += a->data[i][k] * b->data[k][j];
return 1;
}
int main()
{
int i,j;
struct matrix mat1,mat2,result;
printf("输入第一个矩阵的行和列\n");
scanf("%d%d",&mat1.n,&mat1.m);
printf("输入第二个矩阵的行和列\n");
scanf("%d%d",&mat2.n,&mat2.m);
printf("输入第一个矩阵的数据\n");
for(i=0;i<mat1.m;i++)
for(j=0;j<mat1.n;j++)
scanf("%d",&mat1.data[i][j]);
printf("输入第二个矩阵的数据\n");
for(i=0;i<mat2.m;i++)
for(j=0;j<mat2.n;j++)
scanf("%d",&mat2.data[i][j]);
mul(&result,&mat1,&mat2);
for(i=0;i<result.m;i++)
for(j=0;j<result.n;j++)
{
if(j==0) printf("\n");
printf("%-2d ",result.data[i][j]);
}
return 0;
}
计算2个矩阵相乘
猜你喜欢
转载自blog.csdn.net/jd_457619512/article/details/80511687
今日推荐
周排行