C语言编程:编写一个函数,实现矩阵的乘法。

C语言编程:编写一个函数,实现矩阵的乘法。,第1张

如果确定距阵的大小长度,定义两个二维数组,用两个for循环两数据输入到内存,是每两个for输入一个数组,然后定义另外一个数组,用来得到结果距阵,再用铅桐三个嵌套的for将结果放入第三个槐慎坦数组当中,即c[i][j]=a[i][k]+b[k][j],k是在第三重循环,这样就可以得到要求的距阵,如果不确定大小长度就在输入语句的每个for循环的辖区内孝锋加一个变量作为标记程序运行时求出距阵的大小

#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"

const int MAX=5

void multi(int a[MAX][MAX],int b[MAX][MAX],int c[MAX][MAX])

{

int i,j,k

for(i=0i<MAXi++)for(j=0j<MAXj++)c[i][j]=0//游册渗初值化

for(i=0i<MAXi++)//按姿模照书上的公式,乘起来,结果放在C数组里

{

for(j=0j<MAXj++)

{

for(k=0k<MAXk++)

{

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

}

}

}

}

void out(int x[MAX][MAX],int n)//输入矩神脊阵

{

int i,j

for(i=0i<ni++)

{

for(j=0j<nj++)

printf("%d ",x[i][j])

puts("")

}

}

void read(int x[MAX][MAX],int n)

{

int i,j

for(i=0i<ni++)for(j=0j<nj++)scanf("%d",&x[i][j])

}

int main()

{

int a[MAX][MAX],b[MAX][MAX],c[MAX][MAX]

read(a,MAX)//读入矩阵

read(b,MAX)

out(c,MAX)

return 0

}


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

原文地址:https://54852.com/yw/12355558.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存