80分,求助大佬
查看原帖
80分,求助大佬
421567
SpecialT楼主2023/10/4 15:12

最后两个点过不去,求助大佬


#include<bits/stdc++.h>
using namespace std;
struct jz{
	int h,s;//h横 s竖
	int p[101][101];//p[x][y] x行y列
};
jz operator*(const jz &a,const jz &b){//重载运算符
	if(a.h != b.s){
		cout<<"ERROR\n";
	}
	int t = a.h;
	jz ans;ans.s = a.s;ans.h = b.h;
	for(int i=1;i<=ans.s;i++){
		for(int j=1;j<=ans.h;j++){
			for(int k=1;k<=t;k++){
				ans.p[i][j] += a.p[i][k]*b.p[k][j];
			}
		}
	}
	return ans;
}
void jzprint(jz outa){
	for(int i=1;i<=outa.s;i++){
		for(int j=1;j<=outa.h;j++){
			cout<<outa.p[i][j]<<' ';
		}
		cout<<endl;
	}
}
int ni,mi,ki;
jz in1,in2;
int main(){
	scanf("%d%d%d",&ni,&mi,&ki);
	in1.h = in2.s = mi;
	in1.s = ni,in2.h = ki;
	for(int i=1;i<=in1.s;i++)
		for(int j=1;j<=in1.h;j++)
			scanf("%d",&in1.p[i][j]);
	for(int i=1;i<=in2.s;i++)
		for(int j=1;j<=in2.h;j++)
			scanf("%d",&in2.p[i][j]);
	jzprint(in1*in2);
	return 0;
}
2023/10/4 15:12
加载中...