有个异常处理没找到,请大家帮忙看下
要求:求二维数组中各行或各列的和。当输入字符R或r时调用函数求各行的和,当输入字符C或c时,调用函数求各列的和;所求和数按一一对应的方式放在一个一维数组中。说明:
1. 建立一个二维数组并输入值。
2. 调用函数求各行的和与各列的和。
3. 建立一个一维数组存放各行的和或各列的和,并通过函数调用输出一维数组的值。
#include<iostream>
using namespace std;
class juzhen
{
public:
juzhen()
{
cout<<"请输入行数和列数:"<<endl;
cin>>n>>m;
int i,j;
p=new int*[n];
for(i=0;i<n;i++)
{
p[i]=new int[m];
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
cout<<"请输入第"<<i+1<<"行第"<<j+1<<"列元素:"<<endl;
cin>>p[i][j];
}
}
r=new int[n];
c=new int[m];
}
~juzhen()
{
delete[]p;
delete[]r;
delete[]c;
}
int *sumr();
int *sumc();
void display(char a);
private:
int n,m;
int **p;
int sum;
int *r;
int *c;
};
int *juzhen::sumr()
{
int i,j;
for(i=0;i<n;i++)
{
for(sum=0,j=0;j<m;j++)
{
sum+=p[i][j];
}
r[i]=sum;
}
return r;
}
int *juzhen::sumc()
{
int i,j;
for(j=0;j<m;j++)
{
for(sum=0,i=0;i<n;i++)
{
sum+=p[i][j];
}
c[j]=sum;
}
return c;
}
void juzhen::display(char a)
{
int i,j;
if((a=='r')||(a=='R'))
{
sumr();
for(i=0;i<n;i++)
{
cout<<"第"<<i+1<<"行各元素之和为:"<<r[i]<<endl;
}
}
else if((a=='c')||(a=='C'))
{
sumc();
for(j=0;j<m;j++)
{
cout<<"第"<<j+1<<"列个元素之和为"<<c[j]<<endl;
}
}
}
int main()
{
juzhen a;
char x;
loop:
cout<<"若求矩阵各行和请输入R,若求矩阵各列和请输入C:"<<endl;
cin>>x;
if((x=='r')||(x=='R')||(x=='c')||(x=='C'))
{
a.display(x);
}
else
{
cout<<"输入错误,请重新输入"<<endl;
goto loop;
}
return 0;
}