编写一个函数,求两个矩阵的乘积。设有矩阵,则其乘积矩阵的元素为
1.不使用函数
#include <stdio.h>
int main(void) {
double a[5][4],b[4][6],c[5][6],e=0;
int i,j,k;
for(i=0;i<=4;i++){
printf("请输入矩阵a第%d行所有元素:\n",i+1);
for(j=0;j<=3;j++){
scanf("%lf",&a[i][j]);
}
}//输入矩阵a
for(i=0;i<=3;i++){
printf("请输入矩阵b第%d行所有元素:\n",i+1);
for(j=0;j<=5;j++){
scanf("%lf",&b[i][j]);
}
}//输入矩阵b
for(i=0;i<5;i++){
for(j=0;j<6;j++){
for(k=0;k<4;k++){
e=e+a[i][k]*b[k][j];
}
c[i][j]=e;
}
}//计算矩阵c
for(i=0;i<5;i++){
for(j=0;j<6;j++){
printf("%5g",c[i][j]);
}
printf("\n");
}//输出矩阵c
return 0;
}
2.使用函数
#include <stdio.h>
void mul(double a[5][4],double b[4][6]);
int main(void) {
double a[5][4],b[4][6],c[5][6],e=0;
int i,j,k;
for(i=0;i<=4;i++){
printf("请输入矩阵a第%d行所有元素:\n",i+1);
for(j=0;j<=3;j++){
scanf("%lf",&a[i][j]);
}
}//输入矩阵a
for(i=0;i<=3;i++){
printf("请输入矩阵b第%d行所有元素:\n",i+1);
for(j=0;j<=5;j++){
scanf("%lf",&b[i][j]);
}
}//输入矩阵b
mul(a,b);//计算矩阵c
return 0;
}
void mul(double a[5][4],double b[4][6]){
int i,j,k;
double e,c[5][6];
for(i=0;i<5;i++){
for(j=0;j<6;j++){
for(k=0;k<4;k++){
e=e+a[i][k]*b[k][j];
}
c[i][j]=e;
}
}//计算矩阵
for(i=0;i<5;i++){
for(j=0;j<6;j++){
printf("%5g",c[i][j]);
}
printf("\n");
}
}