矩阵相乘需要注意:
- 当矩阵A的列数等于矩阵B的行数时,A与B可以相乘
- 矩阵C的行数等于矩阵A的行数,C的列数等于B的列数
- 乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和
代码实现:
#include
#define M 3 #define N 3 #define K 3 int main() { int A[M][K] = { 0 }; int B[K][N] = { 0 }; int C[M][N] = { 0 }; int i = 0; int j = 0; int m = 0; printf("请输入A矩阵:\n"); for (i = 0; i < M; i++) { printf("A矩阵的%d行\n", i); for (j = 0; j < K; j++) { scanf_s("%d", &A[i][j]); } } printf("请输入B矩阵:\n"); for (i = 0; i < K; i++) { printf("B矩阵第%d行\n", i); for (j = 0; j < N; j++) { scanf_s("%d", &B[i][j]); } } printf("C矩阵:\n"); for (i = 0; i < M; i++) { for (j = 0; j < N; j++) { int sum = 0; for (m = 0; m < K; m++) { sum = sum + A[i][m] * B[m][j]; } C[i][j] = sum; } } for (i = 0; i < M; i++) { for (j = 0; j < N; j++) { printf("%3d",C[i][j]); } printf("\n"); } return 0; }
运行结果如下图:

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225922.html原文链接:https://javaforall.net
