189 8069 5689

c语言矩阵乘法函数 c语言矩阵乘运算

C语言中两矩阵相乘

#include stdio.h

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都企业网站定制,高端网页制作,对护栏打桩机等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业seo优化优化,H5建站,响应式网站。

int main()

{

int x,y,z;

int i,j,l;

int sum=0;

printf("请输入前一个矩阵的行数,列数与后一个矩阵的列数:\n");

scanf("%d %d %d",x,y,z);

int a[x][y];

int b[y][z];

int c[x][z];

//读入矩阵

printf("请输入矩阵a:\n");

for(i=0;ix;i++){

for(j=0;jy;j++){

scanf("%d",a[i][j]);

}

}

printf("请输入矩阵b:\n");

for(i=0;iy;i++){

for(j=0;jz;j++){

scanf("%d",b[i][j]);

}

}

printf("矩阵a为:\n");

for(i=0;ix;i++){

for(j=0;jy;j++){

printf("%d",a[i][j]);

if(j==y-1)

printf("\n");

else

printf("\t");

}

}

printf("矩阵b为:\n");

for(i=0;iy;i++){

for(j=0;jz;j++){

printf("%d",b[i][j]);

if(j==z-1)

printf("\n");

else

printf("\t");

}

}

for(i=0;ix;i++){

for(l=0;lz;l++){

for(j=0;jy;j++){

sum+=a[i][j]*b[j][l];

if(j==y-1){

c[i][l]=sum,sum=0;

}

}

}

}

printf("矩阵a与矩阵b的乘积为:\n");

for(i=0;ix;i++){

for(j=0;jz;j++){

printf("%d",c[i][j]);

if(j==z-1)

printf("\n");

else

printf("\t");

}

}

return 0;

}

C语言关于矩阵乘法的函数,,

童鞋,不知道你是用的什么测试数据,在我的机器上测试了几组数据,结果都是正确的。

重复下我的测试代码。

#include "stdio.h"

#include "stdlib.h"

#include "malloc.h"

void multiplication(int a,int b,int c,int *p,int *q);

void main()

{

int m,n,l,h;

int i,j,g,k;

int *p,*q;

char x;

printf("请输入a矩阵行数和列数,以空格分开,,,");

scanf("%d %d",m,n);

p=(int *)malloc(sizeof(int)*m*n);

for(i=0;im;i++)

for(j=0;jn;j++)

{

printf("请输入a矩阵%d行%d列的数,,",(i+1),(j+1));

scanf("%d",(p+m*i+j));

}

printf("请输入b矩阵行数和列数,以空格分开,,,");

scanf("%d %d",l,h);

q=(int *)malloc(sizeof(int)*l*h);

for(g=0;gl;g++)

for(k=0;kh;k++)

{

printf("请输入b矩阵%d行%d列的数,,",(g+1),(k+1));

scanf("%d",(q+l*g+k));

}

multiplication( m, n, h, p, q);

}

void multiplication(int a,int b,int c,int *p,int *q)

{

int i,j;

int k;

int sum;

for(i=0;ia;i++)

{

for(j=0;jc;j++)

{

sum=0;

for(k=0;kb;k++)

{

sum=sum+(*(p+a*i+k))*(*(q+b*k+j));

}

printf("%d ",sum);

}

printf("\n");

}

}

附带一组测试数据

A 3 4

2 1

B 3

4

Result

25

10

结果正确。

C语言编程:编写一个函数,实现矩阵的乘法。

如果确定距阵的大小长度,定义两个二维数组,用两个for循环两数据输入到内存,是每两个for输入一个数组,然后定义另外一个数组,用来得到结果距阵,再用三个嵌套的for将结果放入第三个数组当中,即c[i][j]=a[i][k]+b[k][j],k是在第三重循环,这样就可以得到要求的距阵,如果不确定大小长度就在输入语句的每个for循环的辖区内加一个变量作为标记程序运行时求出距阵的大小


分享标题:c语言矩阵乘法函数 c语言矩阵乘运算
新闻来源:http://cdxtjz.cn/article/ddjcchp.html

其他资讯