主题:[讨论]下面是我自己编的程序,不知为什么怎么也运行不了,求各位高手看一下问题在那里?谢谢!
#define N 256
class Array
{ private:
int c[N][N];
public:
int Add(int n1,int n2);
int Dec(int n1,int n2);
int Mul();
void Print();
void menu();
}
#include"iostream" //array.cpp
using namespace std;
#include"array.h"
int main()
{ Array ar;
int a[N][N],b[N][N];
int i,j;
int n,m=1;
int n1,m1,n2,m2;
while(m)
{
ar.menu();
cin>>n;
switch(n)
{case 1:{
ar.Add();
break;}
case 2:{
ar.Dec();
break;}]}
case 3:{
cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>" ";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>" ";
cout<<endl;
}
if(n1==m2&&n2==m1)
{ar.Mul(n1,m2,n2);}
else cout<<"您的输入有误!"<<endl;
break;
}
case 4: m=0;
}
}
return 0;
}
void menu()
{
cout<<endl<<"请选择:"<<endl;
cout<<"1.矩阵加法。"<<endl;
cout<<"2.矩阵减法。"<<endl;
cout<<"3.矩阵乘法。"<<endl;
cout<<"4.退出。"<<endl;
cout<<"请输入您的选择结果:"<<endl<<endl;
}
int Array::Add()
{ cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>"\t";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>"\t";
cout<<endl;
}
if(n1==n2&&m1==m2)
{for(i=0;i<n1;i++)
{for(j=0;j<ml;j++)
{c[i][j]=a[i][j]+b[i][j];}
}
cout<<"矩阵相加后运算结果为:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<m1;j++)cout<<c[i][j]<<" ";
cout<<endl;
}
}
else cout<<"您的输入有误!"<<endl;
return 0;
}
int Array::Dec()
{ cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>"\t";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>"\t";
cout<<endl;
}
if(n1==n2&&m1==m2)
{for(i=0;i<n1;i++)
{for(j=0;j<ml;j++)
{c[i][j]=a[i][j]-b[i][j];}
}
cout<<"矩阵相减后运算结果为:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<m1;j++)cout<<c[i][j]<<"\t";
cout<<endl;
}
}
else cout<<"您的输入有误!"<<endl;
return 0;
}
int Array::Mul(int b1,int b2,int b3)
{ int i,j,tmp,k;
cout<<"矩阵相乘后的结果为:"<<endl;
for(i=0;i<b1;i++)
{for(j=0;j<b2;j++)
{tmp=0;
for(k=0;k<b3;k++)tmp+=a[i][k]*b[k][j];
cout<<tmp<<"\t";
}
cout<<endl;
}
}[em8]
class Array
{ private:
int c[N][N];
public:
int Add(int n1,int n2);
int Dec(int n1,int n2);
int Mul();
void Print();
void menu();
}
#include"iostream" //array.cpp
using namespace std;
#include"array.h"
int main()
{ Array ar;
int a[N][N],b[N][N];
int i,j;
int n,m=1;
int n1,m1,n2,m2;
while(m)
{
ar.menu();
cin>>n;
switch(n)
{case 1:{
ar.Add();
break;}
case 2:{
ar.Dec();
break;}]}
case 3:{
cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>" ";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>" ";
cout<<endl;
}
if(n1==m2&&n2==m1)
{ar.Mul(n1,m2,n2);}
else cout<<"您的输入有误!"<<endl;
break;
}
case 4: m=0;
}
}
return 0;
}
void menu()
{
cout<<endl<<"请选择:"<<endl;
cout<<"1.矩阵加法。"<<endl;
cout<<"2.矩阵减法。"<<endl;
cout<<"3.矩阵乘法。"<<endl;
cout<<"4.退出。"<<endl;
cout<<"请输入您的选择结果:"<<endl<<endl;
}
int Array::Add()
{ cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>"\t";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>"\t";
cout<<endl;
}
if(n1==n2&&m1==m2)
{for(i=0;i<n1;i++)
{for(j=0;j<ml;j++)
{c[i][j]=a[i][j]+b[i][j];}
}
cout<<"矩阵相加后运算结果为:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<m1;j++)cout<<c[i][j]<<" ";
cout<<endl;
}
}
else cout<<"您的输入有误!"<<endl;
return 0;
}
int Array::Dec()
{ cout<<"请输入第一个矩阵的行数和列数:"<<endl;
cin>>n1>>m1;
cout<<"请输入第一个矩阵的数据:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<=m1;j++)cin>>a[i][j]>>"\t";
cout<<endl;
}
cout<<"请输入第二个矩阵的行数和列数:"<<endl;
cin>>n2>>m2;
cout<<"请输入第二个矩阵的数据:"<<endl;
for(i=0;i<n2;i++)
{for(j=0;j<m2;j++)cin>>b[i][j]>>"\t";
cout<<endl;
}
if(n1==n2&&m1==m2)
{for(i=0;i<n1;i++)
{for(j=0;j<ml;j++)
{c[i][j]=a[i][j]-b[i][j];}
}
cout<<"矩阵相减后运算结果为:"<<endl;
for(i=0;i<n1;i++)
{for(j=0;j<m1;j++)cout<<c[i][j]<<"\t";
cout<<endl;
}
}
else cout<<"您的输入有误!"<<endl;
return 0;
}
int Array::Mul(int b1,int b2,int b3)
{ int i,j,tmp,k;
cout<<"矩阵相乘后的结果为:"<<endl;
for(i=0;i<b1;i++)
{for(j=0;j<b2;j++)
{tmp=0;
for(k=0;k<b3;k++)tmp+=a[i][k]*b[k][j];
cout<<tmp<<"\t";
}
cout<<endl;
}
}[em8]