//初始化第二个矩阵的数据后程序崩溃了?为什么呢?
#include
using namespace std;
int main()
{
a:
int m,n,r,c;
cout<<"请输入第一个矩阵的行与列"<
cin>>m>>n;
cout<<"请输入第二个矩阵的行与列"<
cin>>r>>c;
if(n!=r)
{
cout<<"对不起,你输入的两个矩阵不能进行矩阵乘法运算"<
goto a;
}
int **matrix1=new int *[m];//先定义二位指针,实质是指向以为数组的指针
for(int i=0;i
matrix1[i]=new int [n];
int **matrix2=new int *[r];
for(int i=0;i
matrix2[i]=new int [c];
//两个二位数组设置好了,现在进行初始化数据
cout
for(int i=0;i
for(int j=0;j
cin>>matrix1[i][j];
cout<<"现在请输入第二个矩阵的数据,请逐行输入"<
for(int i=0;i
for(int j=0;j
cin>>matrix2[i][j];
//打印原始矩阵
cout<<"第一个矩阵"<<endl;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
cout<<matrix1[i][j];
cout<<endl;
}
cout<<"第二个矩阵"<<endl;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
cout<<matrix2[i][j];
}
//数据初始化完毕,进行矩阵乘法的运算;
int **matrix=new int *[m];
for(int i=0;i<c;i++)
matrix[i]=new int [c];
for(int i=0;i<m;i++)
for(int j=0;j<c;j++)
{
int k=0;
while (k<n)
{
matrix[i][j]+=matrix1[i][k]*matrix2[k][j];
k++;
}
}
//打印结果矩阵
for(int i=0;i<m;i++)
{
for(int j=0;j<c;j++)
cout<<matrix[i][j];
cout<<endl;
}
//错误 int **matrix2=new int [r][c];
return 0;
}