2021天梯矩阵乘法

在这里插入图片描述
输入样例
2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8
输出样例
2 4
20 22 24 16
53 58 63 28
输入样例
3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72
输出样例
Error: 2 != 3
思路就是老老实实计算,三个数组,给定的两个需要用两个数组来存放,第三个数组用来存放计算过的新矩阵

#include<bits/stdc++.h>
using namespace std;
int main(){
	int R1,R2,C1,C2;
	cin>>R1>>C1;
    int a[R1][C1];
	for(int i=0;i<R1;i++){
		for(int j=0;j<C1;j++){
			cin>>a[i][j];
		}
	} 
	cin>>R2>>C2;
    int b[R2][C2];
	for(int i=0;i<R2;i++){
		for(int j=0;j<C2;j++){
			cin>>b[i][j];
		}
	} 
	if(C1==R2){//前列等于后行可执行 
		int c[R1][C2]={0};//新矩阵前行后列标准 
		cout<<R1<<" "<<C2<<endl;
		for(int i=0;i<R1;i++){
			for(int j=0;j<C2;j++){
				//!!每一次对应位置后,要记得清零,之后再算下一个位置
				c[i][j]=0; 
				for(int k=0;k<R2;k++){
				//因为矩阵运算后新的对应位置是乘积加和,
				//所以就想到定了k 
					c[i][j]+=a[i][k]*b[k][j];
				}
			}
		}
		//接下来进行输出
		for(int i=0;i<R1;i++){
			for(int j=0;j<C2;j++){
				if(j==0) cout<<c[i][j];
				else	cout<<" "<<c[i][j];
			}
			cout<<endl;//回车呀!又忘记了 
		}
	}else
		cout<<"Error: "<<C1<<" != "<<R2<<endl;
}

这里有几个小细节
1.abc数组可以根据输入的行列直接作为数组的行列大小
2.输出方式的格式控制要小心
3.每次计算出一个新矩阵的数时,要给数组清零,再计算下一个
4.k的定义。!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值