两个矩阵相乘的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;}
最后更新于 2023-10-15 02:41:48 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章