C语言编程求矩阵乘积

C语言编程求矩阵乘积,第1张

#define MAX 50

#define M MAX

#define N MAX

#define T MAX

#define S MAX

int Mult(double a[][N],int m,int n,double b[][T]int s,int t,double c[][T]) {

int i,j,k

if(n != s) {

printf("两矩阵相明销纤乘,左矩阵的列数与斗枯右矩阵的行数必须相等。\n")

return 0

}

int c

tmp.m_Mat = new double *[tmp.m_Rows]

for(int i = 0i < tmp.m_Rowsi++) tmp.m_Mat[i] = new double[tmp.m_Cols]

for(i = 0 i < m ++i) 激仿{

for(j = 0 j < n ++j) {

c[i][j] = 0

for(k = 0 k < t ++k)

c[i][j] += c[i][k] * c[k][j]

}

}

return 1

}

#include<stdio.h>

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=0m<Ju[i].mm++)

{

for(n=0n<Ju[i].nn++)

{

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=1i<10i++)

{

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=0m<Ju[0].mm++)

{

for(n=0n<Ju[0].nn++)

{

Ju[10].array[m][n]=0

for(k=0k<Ju[i].mk++)

{

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=0m<Ju[0].mm++)

{

for(n=0n<Ju[0].nn++)

{

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

}

printf("\巧让n")

}

}

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12560544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存