"程序功能:该程序实现了两个矩阵的乘法运算。\n\n设计思路:首先读取输入的矩阵A和矩阵B的行列数,并根据行列数创建相应大小的数组a和b。然后依次读取矩阵A和矩阵B的元素值。接下来判断矩阵A的列数是否等于矩阵B的行数,如果相等,则进行矩阵乘法运算。乘法运算的结果是一个新的矩阵C,其行数等于矩阵A的行数,列数等于矩阵B的列数。通过三重循环,将矩阵A的每一行与矩阵B的每一列进行乘法运算,并将结果存储在矩阵C中。最后输出矩阵C。\n\n结构说明:该程序主要由两个二维数组a和b组成,分别用于存储矩阵A和矩阵B的元素值。其中,a的大小为ra行ca列,b的大小为rb行cb列。通过三重循环,将a和b中的元素分别与另一个矩阵中的对应元素进行乘法运算,并将结果存储在一个新的二维数组c中。最后输出c的内容。\n\n#include <iostream> \n\nusing namespace std; \nint a[101][101], b[101][101]; \nint main() \n{ \n int ra, ca, rb, cb; \n scanf("%d%d", &ra, &ca); \n for(int i=0; i<ra; i++) \n { \n for(int j=0; j<ca; j++) \n { \n scanf("%d", &a[i][j]); \n } \n } \n scanf("%d%d", &rb, &cb); \n for(int i=0; i<rb; i++) \n { \n for(int j=0; j<cb; j++) \n { \n scanf("%d", &b[i][j]); \n } \n } \n if(ca == rb) \n { \n printf("%d %d\n", ra, cb); \n for(int i=0; i<ra; i++) \n { \n for(int j=0; j<cb; j++) \n { \n int sum = 0; \n for(int k=0; k<ca; k++) \n { \n sum += a[i][k]*b[k][j]; \n } \n if(j < cb-1) \n printf("%d ", sum); \n else printf("%d\n", sum); \n } \n } \n } \n else printf("Error: %d != %d\n", ca, rb); \n return 0; \n}

C++ 矩阵乘法程序:代码解析与实现

原文地址: http://www.cveoy.top/t/topic/p6oG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录