#include<iostream.h>
#include<iomanip.h>
int a[3][4]={{5,7,8,2},{-2,4,1,1},{1,2,3,4}};
int b[4][5]={{4,-2,3,3,9},{4,3,8,-1,2},{2,3,5,2,7},{1,0,6,3,4}};
int c[3][5];
int multimatrix(int a[][4],int arow,int acol,int b[][5],int brow,int bcol,int c[][5],int crow,int ccol);
void main()
{
if(multimatrix(a,3,4,b,4,5,c,3,5))
{
cout<<"illegal matrix multiply.\n";
return;
}
for(int i=0;i<3;i++)
{
for(int j=0;i<5;j++)
cout<<setw(5)<<c[i][j];
cout<<endl;
}
}
int multimatrix(int a[][4],int arow,int acol,int b[][5],int brow,int bcol,int c[][5],int crow,int ccol)
{
if(acol!=brow)return 1; //正确性检查
if(arow!=crow)return 1;
if(bcol!=ccol)return 1;
for(int i=0;i<crow;i++)
for(int j=0;i<ccol;j++)
for(int n=0;n<acol;n++)
c[i][j]+=a[i][n]*b[n][j];
return 0;
}
没错误,运行不出结果~帮忙看看~
另外问下:红色部分return;是跳出函数的意思吗?~
还有就是蓝色部分:
if(acol!=brow)return 1;
if(arow!=crow)return 1;
if(bcol!=ccol)return 1;
我觉得只要检查矩阵a和b就可以了,因为c此时还没出现,所以后2句不需要吧~