题目:
1.用C语言编写,求四行三列矩阵和三行四列矩阵的乘积,格构成元素由键盘输入。
分析:1.本体可以分为四个部分,(1)输入第一个矩阵的元素
(2)输入第二个矩阵的元素
(3)计算乘积
(4)打印结果
2.可以使用对象式宏,来定义数值。
代码运行:
#include <stdio.h>
int i, j, k;
#define ROWS_A 4
#define COLS_A 3
#define ROWS_B 3
#define COLS_B 4
#define ROWS_C ROWS_A
#define COLS_C COLS_B
int A[ROWS_A][COLS_A], B[ROWS_B][COLS_B], C[ROWS_C][COLS_C];
int input_matrixA();
int input_matrixB();
void count_matrix();
void output_matrix();
int main()
{
input_matrixA();//函数调用
input_matrixB();//函数调用
count_matrix();//函数调用
output_matrix();//函数调用
return 0;
}
int input_matrixA()// 输入矩阵A
{
printf("请输入矩阵A的元素(4行3列):\n");
for (i = 0; i < ROWS_A; i++)
{
for (j = 0; j < COLS_A; j++)
{
scanf("%d", &A[i][j]);
}
}
return 0;
}
int input_matrixB()// 输入矩阵B
{
printf("请输入矩阵B的元素(3行4列):\n");
for (i = 0; i < ROWS_B; i++)
{
for (j = 0; j < COLS_B; j++)
{
scanf("%d", &B[i][j]);
}
}
return 0;
}
void count_matrix()// 计算矩阵C = A * B
{
for (i = 0; i < ROWS_C; i++)
{
for (j = 0; j < COLS_C; j++)
{
C[i][j] = 0;
for (k = 0; k < COLS_A; k++)
{
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
void output_matrix()// 输出矩阵C
{
printf("矩阵C(A和B的乘积)的元素(4行4列):\n");
for (i = 0; i < ROWS_C; i++)
{
for (j = 0; j < COLS_C; j++)
{
printf("%d ", C[i][j]);
}
printf("\n");
}
}
运行结果:
完