c语言矩阵的乘法

2025-06-23 08:56:29
推荐回答(1个)
回答1:

#include
typedef struct
{
int m;
int n;
int array[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 and n:\n");
scanf("%d%d",&Ju[i].m,&Ju[i].n);
while(Ju[i].m<=0||Ju[i].m>100||Ju[i].n<=0||Ju[i].m>100)
{
printf("In put m and n again:\n");
scanf("%d%d",&Ju[i].m,&Ju[i].n);
}
printf("In put your array:\n");
for(m=0;m {
for(n=0;n
{
scanf("%d",&Ju[i].array[m][n]);
if(Ju[i].array[m][n]==0)
flag[i]++;
}
}
if(flag[i]==(Ju[i].m*Ju[i].n))//矩阵元素全为0才退出循环
{
flag[i]=1;
break;
}
else
flag[i]=0;
i++;
i=i%10;//超过10个矩阵,则又循环到第1个。
}
for(i=1;i<10;i++)
{
if((Ju[i].m!=Ju[0].n)&&(flag[i]==0))
{
printf("Not satisfied the definition of matrix multiplication !\n");
return 0;
}
if(flag[i])
{
break;
}
for(m=0;m {
for(n=0;n {
Ju[10].array[m][n]=0;
for(k=0;k {
Ju[10].array[m][n]+=Ju[0].array[m][n]*Ju[i].array[k][n];
}
Ju[0].array[m][n]=Ju[10].array[m][n];
}
}
}
for(m=0;m {
for(n=0;n {
printf("%-8d",Ju[0].array[m][n]);
}
printf("\n");
}
}
你试试这个我的矩阵乘法是这样的了,A=A*B*C...(10个以内)。