c++实现矩阵乘法

本文介绍了如何使用C++编程语言解决矩阵乘法问题,通过三层嵌套循环计算矩阵A和矩阵B的乘积,并提供了输入输出样例。
摘要由CSDN通过智能技术生成

每日一道算法题之矩阵乘法

一、题目描述

矩阵A是一个N行P列的矩阵, 矩阵B是一个P行M列的矩阵。根据线性代数中学过的矩阵相乘的原理,计算矩阵A和矩阵B相乘后得到的矩阵,并输出。

C++程序要求输入输出格式如下:
输入格式
输入共一行,有三个整数N,P,M(N,P,M≤100)。表示矩阵A是一个N×P的矩阵,矩阵B是一个P×M的矩阵。
接下来N行,每行P个整数,读入矩阵A。
再接下来P行,每行M个整数,读入矩阵B。
数据保证在输入输出数据可以用int类型存储。
输出格式
输出N行M列的矩阵C

输入输出样例如下:

输入: 2 3 4             输出:6 6 6 6
      1 2 3                   3 3 3 3
      1 1 1
      1 1 1 1
      1 1 1 1
      1 1 1 1
      

二、思路

  对于本题直接考虑暴力解,利用三层for循环计算两个矩阵中两两元素相乘的结果,累加后存入一个一维数组,输出时换行输出,即可打印出N行M列矩阵。

三、C++代码

#include<bits/stdc++.h>
using namespace std;

//矩阵乘法 

int main(){
	
  int N,P,M;
  cin>>N>>P>>M;
  
  int a_matrix[N][P];
  int b_matrix[P][M];
  
  int c_matrix[100*100];
  
  for(int i=0;i<N;i++){   //输入矩阵A 
		for(int j=0;j<P;j++){
			
			cin>>a_matrix[i][j];
		}
  }
  
  for(int i=0;i<P;i++){    //输入矩阵B
		for(int j=0;j<M;j++){
			
			cin>>b_matrix[i][j];
		}
  }
  
  int index=0;   
  for(int a=0;a<N;a++){  //a为A矩阵的行标
		
		for(int b=0;b<M;b++){  //b为B矩阵的列标
			
			for(int c=0;c<P;c++){  //c为B矩阵的行标、A矩阵的列标
				
				c_matrix[index]+=a_matrix[a][c]*b_matrix[c][b];
			}
			index++;
		}
  }
  
  for (int i = 1; i <= N * M; i++)//输出C矩阵
    {
        cout << c_matrix[i - 1] << ' ';
        if (i % M == 0)//每输出一行,换行
        {
            cout << endl;
        }
    }
  

   
} 
  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值