矩阵乘法c语言算法

m行,l列乘以l行,n列等于m行,n列。

所以定义一个3行3列的矩阵。

它分为两个循环。

矩阵乘积的c语言程序设计 #定义最大50

#定义M最大值

#定义N最大值

#定义T MAX

#定义最大值

Intmult(双a 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语言矩阵的乘法 # includestdio.h

typedef结构

{

int m;

int n;

int数组[100][100];

} Ju _ def

int main()

{

Ju _ def Ju[11];

int i=0,m,n,k;

int flag[10];

while(1)

{

flag[I]= 0;

printf("In put m和n:\ n ");

scanf("%d%d ",Ju[i].m,Ju[i]。n);

while(Ju[i]。m = 0 | |居[i]. m100 | |居[I].n = 0 | |居[i].m100)

{

printf("In再次输入m和n:\ n ");

scanf("%d%d ",Ju[i].m,Ju[i]。n);

}

printf("放入您的数组:\ n ");

for(m = 0;mJu[i]。m;m)

{

for(n = 0;nJu[i]。n;n)

{

scanf("%d ",Ju[i].array[m][n]);

if(Ju[i].数组[m][n]==0)

flag[I];

}

}

If (flag [I] = = (ju [I].m * ju [I]。n))//矩阵元素在退出循环之前都是0。

{

flag[I]= 1;

打破;

}

其他

flag[I]= 0;

我;

i=i;//如果超过10个矩阵,就会循环到第一个。

}

for(I = 1;i10我)

{

如果((Ju[i].m!=Ju[0]。n)(flag[i]==0))

{

printf("不满足矩阵乘法的定义!\ n ");

返回0;

}

if(标志[i])

{

打破;

}

for(m = 0;mJu[0]。m;m)

{

for(n = 0;nJu[0]。n;n)

{

居[10]。array[m][n]= 0;

for(k = 0;kJu[i]。m;k)

{

居[10]。数组[m][n] =Ju[0]。数组[m][n]*Ju[i]。array[k][n];

}

居[0]。数组[m][n]=Ju[10]。array[m][n];

}

}

}

for(m = 0;mJu[0]。m;m)

{

for(n = 0;nJu[0]。n;n)

{

printf("%-8d ",Ju[0]。array[m][n]);

}

printf(" \ n ");

}

}

你试试这个。我的矩阵乘法是这样的。A = A * B * C...(10以内)。

c语言,矩阵乘法求解 此处,已更改:

#包含stdio.h

#包含数学. h

int main()

{

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][2]={1,1,1,1,2,2,2,2},c[3][2],I,j;

for(I = 0;i3;我)

{

for(j = 0;J2;j)

{

c[I][j]= 0;

for(x = 0;x4;x)

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

}

}

for(I = 0;i3;我)

{

for(j = 0;J2;j)

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

printf(" \ n ");

}

}

相关文章

发表新评论