c语言33矩阵乘法函数 c语言矩阵乘法函数调用

c语言矩阵乘法函数函数类型是根据有无返回值判断的,无返回值就把函数定义为void类型
如果是单纯输出矩阵那就不用返回了,如果还要传回主函数有其它应用那就返回吧
C语言实现矩阵乘法1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值 。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:
1 9 7
2 3 8
4 5 6
n=3,则矩阵值变为:
1 9 7
6 9 8
12 15 18
注:二维数组下三角元素每行最后元素的列标和该列的列号一致
#include stdio.h
int juzhen(int a[][3],int n)
{
int i,j;
for (i=1;i3;i)
for (j=0;j=i;j)
a[i][j]=a[i][j]*n;
}
main()
{
int i,j,a[3][3],m;
clrscr();
printf("please enter 9 numbers :\n");
for (i=0;i3;i)
for (j=0;j3;j)
scanf("%d",a[i][j]);
printf("the old ju zhen is:\n");
for (i=0;i3;i)
{
for (j=0;j3;j)
printf("=",a[i][j]);
printf("\n");
}
printf("please enter a int number:\n");
scanf("%d",m);
juzhen (a,m);
printf("the new ju zhen is:\n");
for (i=0;i3;i)
{
for (j=0;j3;j)
printf("=",a[i][j]);
printf("\n");
}
}
2,请编写函数juzhen , 该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y , 结果放在三行三列矩阵中 。矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i , j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积 。
X和Y矩阵原型可运行后看到!
#include conio.h
#include stdio.h
void juzhen (int a[3][4],int b[4][3],int ab[3][3])
{
int i,j,z;
for (i=0;i3;i)
for (j=0;j4;j)
for (z=0;z3;z)
ab[i][z]=ab[i][z] a[i][j]*b[j][z];/*此得为要填写的内容*/
}
main()
{
int x[3][4]={1,0,1,1,2,1,0,1,1,2,0,3};
int y[4][3]={1,1,1,0,0,0,2,1,1,1,1,3};
int xy[3][3]={0},i,j;
clrscr();
juzhen (x,y,xy);
printf("x ju zhen is:\n");
for (i=0;i3;i)
{
for (j=0;j4;j)
printf("=",x[i][j]);
printf("\n");
}
printf("y ju zhen is:\n");
for (i=0;i4;i)
{
for (j=0;j3;j)
printf("=",y[i][j]);
printf("\n");
}
printf("xy ju zhen is:\n");
for (i=0;i3;i)
{
for (j=0;j3;j)
printf("=",xy[i][j]);
printf("\n");
}
}
由于你没有说要求,我就写了两个,这是两道比较精典的求c语言矩阵乘法程序
用c语言实现两个矩阵相乘怎么做?1、程序运行输入数据时c语言33矩阵乘法函数,第一行为A矩阵c语言33矩阵乘法函数的行列数和B矩阵的行列数c语言33矩阵乘法函数,接着分别输入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语言关于矩阵乘法的函数,,童鞋,不知道你是用的什么测试数据,在我的机器上测试了几组数据,结果都是正确的 。
重复下我的测试代码 。
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
void multiplication(int a,int b,int c,int *p,int *q);
void main()
{
int m,n,l,h;
int i,j,g,k;
int *p,*q;
char x;
printf("请输入a矩阵行数和列数,以空格分开,,,");
scanf("%d %d",m,n);
p=(int *)malloc(sizeof(int)*m*n);
for(i=0;im;i)
for(j=0;jn;j)
{
printf("请输入a矩阵%d行%d列的数,,",(i 1),(j 1));
scanf("%d",(p m*i j));
}
printf("请输入b矩阵行数和列数,以空格分开,,,");
scanf("%d %d",l,h);
q=(int *)malloc(sizeof(int)*l*h);
for(g=0;gl;g)
for(k=0;kh;k)
{
printf("请输入b矩阵%d行%d列的数, , ",(g 1),(k 1));
scanf("%d",(q l*g k));
}
multiplication( m, n, h, p, q);
}
void multiplication(int a,int b,int c,int *p,int *q)
{
int i,j;
int k;
int sum;
for(i=0;ia;i)
{
for(j=0;jc;j)
{
sum=0;
for(k=0;kb;k)
{
sum=sum (*(p a*i k))*(*(q b*k j));
}
printf("%d ",sum);
}
printf("\n");
}
}
附带一组测试数据
A34
21
B 3
4
Result
25
10
结果正确 。
【c语言33矩阵乘法函数 c语言矩阵乘法函数调用】c语言33矩阵乘法函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言矩阵乘法函数调用、c语言33矩阵乘法函数的信息别忘了在本站进行查找喔 。

    推荐阅读