c语言。turboc2环境。跪求 编程实现相乘的运算。要求: (1)主函数输入两个3*3大小的矩阵

c语言。turboc2环境。跪求
编程实现相乘的运算。要求:
(1)主函数输入两个3*3大小的矩阵。建立一个未赋值的矩阵来存放运算结果
(2)编写子函数实现矩阵相乘的操作,用指针作为函数参数传递矩阵。返回一个指向二维数组的指针。
(3)在主函数中打印结果

我已经在另一个问题里面回答了这一题
链接为http://zhidao.baidu.com/question/1110362592432240339.html
下面为详细代码

#include <stdio.h>
#include <stdlib.h>
int **cal(int a[][3], int b[][3]);
int main() {
int a[3][3], b[3][3], i, j;
for (i = 0; i < 3; i++)//输入数组a
for (j = 0; j < 3; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < 3; i++)//输入数组b
for (j = 0; j < 3; j++)
scanf("%d", &b[i][j]);
int **mul = cal(a, b);//计算矩阵乘积
for (i = 0; i < 3; i++)//打印
printf("%d %d %d\n", mul[i][0], mul[i][1], mul[i][2]);
for (i = 0; i < 3; i++)//释放动态数组
free(mul[i]);
free(mul);
return 0;
}
int **cal(int a[][3], int b[][3]) {
//创建动态数组
int **p = (int **) malloc(3 * sizeof(int *)), i, j;
for (i = 0; i < 3; i++)
p[i] = (int *) malloc(3 * sizeof(int));
//计算
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
p[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
return p;
}
温馨提示:答案为网友推荐,仅供参考
相似回答