C语言程序实现矩阵相乘

C语言程序实现矩阵相乘nbsp 矩阵相乘需要注意 当矩阵 A 的列数等于矩阵 B 的行数时 A 与 B 可以相乘 矩阵 C 的行数等于矩阵 A 的行数 C 的列数等于 B 的列数 乘积 C 的第 m 行第 n 列的元素等于矩阵 A 的第 m 行的元素与矩阵 B 的第 n 列对应元素乘积之和代码实现 include lt stdio h gt defineM3 defineN3 defineK3intm intA M

 

矩阵相乘需要注意:

  • 当矩阵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; } 
  

运行结果如下图:

C语言程序实现矩阵相乘

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月17日 上午8:14
下一篇 2026年3月17日 上午8:14


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号