两个矩阵相乘的c语言

我没有仔细看。是维度问题吗?

给你一个程序来计算:

用aC语言求两个矩阵的乘积 #包含“stdio.h”

#定义语言4

#定义语言B 3

#定义语言语言b

int multi(double A[][LANGA],double B[][LANGB],double C[][LANGC],int langa,int langb,int langc){

int i,j,k;

if(langa==LANGB langb==LANGA){

for(I = 0;伊兰加;我)

for(j = 0;jlangcj)

for(C[I][j]= k = 0;klangbk)

c[I][j]= A[I][k]* B[k][j];

返回0;

}

return-1;

}

int main(int argv,char *argc[]){

双A[LANGB][LANGA],B[LANGA][LANGB],C[LANGB][LANGC];

int i,j;

for(I = 0;iLANGB我)

for(j = 0;jLANGAa[I][j]= 1.0/(I j 1));

for(I = 0;伊兰加;我)

for(j = 0;jLANGBb[I][j]= 1.0j);

if(multi(A,B,C,LANGB,LANGA,LANGB))

return-1;

for(I = 0;iLANGBi ){

for(j = 0;jLANGCprintf(".4le",c[i][j])));

printf(" \ n ");

}

返回0;

}

运行示例:

C语言中两个矩阵的乘法 #包含stdio.h

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;九;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;九;i ){

for(j = 0;jy;j ){

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

如果(j==y-1)

printf(" \ n ");

其他

printf(" \ t ");

}

}

Printf("矩阵b是:\ n ");

for(I = 0;iy;i ){

for(j = 0;JZ;j ){

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

如果(j==z-1)

printf(" \ n ");

其他

printf(" \ t ");

}

}

for(I = 0;九;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;九;i ){

for(j = 0;JZ;j ){

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

如果(j==z-1)

printf(" \ n ");

其他

printf(" \ t ");

}

}

返回0;

}

求高手帮忙用C语言求两个矩阵的乘积。 1.首先打开编程软件,新建一个项目,添加一个double.cpp文件,如图。

2,包括stdio.h头文件,如图所示。

3.然后进入主功能,如图。

4.然后定义两个double类型的变量并初始化,如图所示。

5.使用scanf函数接受任意两位小数,计算两位小数的乘积并打印出来,如图所示。

6.然后运行程序并检查结果,如图所示。

C语言中两个矩阵如何相乘? 1.程序运行输入数据时,第一行是矩阵A的行数和列数以及矩阵B的行数和列数,然后分别输入两个矩阵A和B的值。

2.首先定义6个整数变量来存储A和B矩阵的行和列,以及控制循环的变量,k用来乘矩阵。

3.然后,定义三个整数二维数组来存储A、B、C矩阵的元素。

4.输入三个矩阵的行数和列数,并将它们保存在变量A、B和C中..

5.输入矩阵A的元素并保存在数组X中..

6.输入矩阵B的元素并保存在数组Y中..

7.将二维数组Z的每个元素初始化为0。

8.使用两层for循环来控制矩阵的乘法,并输出乘法的结果。

9.计算矩阵A和矩阵B的乘积,并将结果保存在数组Z中..

10.最后输出相乘的结果,即输出Z数组中的所有元素。

11.运行程序,输入矩阵A和B的行数和列数,以及矩阵A和B的所有元素,计算机将计算乘积矩阵C的所有元素并输出矩阵C..

C语言中两个矩阵的乘积 # includestdio.h

int main(){

int a[100][100],b[100][100],c[100][100]= { 0 };

int m1,n1,m2,n2,I,j,k;

Printf("请输入矩阵A的行数m1和列数N1:\ n ");

scanf("%d%d ",m1,n1);

Printf("请输入矩阵B的行数m2和列数N2:\ n ");

scanf("%d%d ",m2,N2);

如果(n1!=m2)

printf(" \ n不能相乘\ n ");

else if((m 1100)| |(n 1100)| |(m 2100)| |(n 2100))

Printf("出界!!");

否则{

for(I = 0;im1我)

for(j = 0;jn1j ){

printf("a[%d][%d]=:",I,j);

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

printf(" \ n ");

for(I = 0;im2我)

for(j = 0;jn2j ){

printf("b[%d][%d]=:",I,j);

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

printf(" \ n matrix C = a* B:\ n ");

for(I = 0;im1我)

for(j = 0;jn2j ){

for(k = 0;kn1k)

c[I][j]= a[I][k]* b[k][j];

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

如果(j==n2)

printf(" \ n ");}}

返回0;}

相关文章

发表新评论