include<iostream>
using namespace std;
int main(){
//输入两个矩阵,分别指出是几乘几
int i , j; //行和列
cout<<"请输入第一个矩阵的行和列" <<endl;
cin>>i>>j;
cout<<i<<"..."<<j<<endl;
int **number1 = new int*[i];
for(int num1 = 0; num1<i; num1++){
number1[num1] = new int[j];
}
for(int k=0; k<i; k++){
for(int kk=0; kk<j; kk++){
// cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符
cin>>number1[k][kk];
}
}
int m , n;
cout<<"请输入第二个矩阵的行和列"<<endl;
cin>>m>>n;
if(j!=m){
cout<<"第一列不等于第一行,错误"<<endl;
return -1;
}
int **number2 = new int*[m];
for(int num1 = 0; num1<m; num1++){
number2[num1] = new int[n];
}
for(int k=0; k<m; k++){
for(int kk=0; kk<n; kk++){
cin>>number2[k][kk];
}
}
//定义一个临时矩阵
int **temp = new int*[i];
for(int num1 = 0; num1<i; num1++){
temp[num1] = new int[n];
}
//将两个矩阵相乘保存到temp数组里面
for(int k=0; k<i; k++)
for(int kk=0; kk<n; kk++){
temp[k][kk] = 0;
for(int digit=0; digit<j; digit++){
temp[k][kk] += number1[k][digit]*number2[digit][kk];
//cout<<number1[k][digit]<<"-"<<number2[digit][kk];
}
cout<<endl;
}
cout<<"计算的结果为:"<<endl;
for(int k=0; k<i; k++){
for(int kk=0; kk<n; kk++){
cout<<temp[k][kk]<<" ";
}
cout<<endl;
}
return 0;
}
网友评论