vc++建立一个类sum,输入5*5的二维数组,编写程序实现:求出两对角线上个元素的和,求出对角

2024年11月22日 01:48
有1个网友回答
网友(1):

#include
using namespace std;
class SUM
{
private:
int C_array[5][5];
int s;
int a;
int b,m,n;
public:
SUM(){}
SUM(int temp[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
C_array[i][j] = temp[i][j];
s = 0;
a = 1;
b = 0;
m = 0;
n = 0;
}
void process1()
{
int i = 0,j = 4;
for(i=0;i<5;i++)
{
s+=C_array[i][i];
}
for(i=0;i<5;i++)
for(j = 4;j>=0;j--)
{
if(i+j==4&&i!=j)
s+=C_array[i][j];
}
cout<<"对角线上所有元素的和为:"< }
void process2()
{
int i = 0,j=4;
for(i=0;i<5;i++)
{
if((i+1)%2==0)
a*=C_array[i][i];
}
for(i=0;i<5;i++)
for(j=4;j>=0;j--)
{
if((i+j==4)&&(i!=j)&&((i+1)%2==0)&&((j+1)%2==0))
a*=C_array[i][j];
}
cout<<"对角线上所有下标为偶数的元素的积为:"< }
void process3()
{
int i=0,j=0;
b = C_array[0][0];
m = 0;
n = 0;
for(i=0;i<5;i++)
{
if(b {
b = C_array[i][i];
m = i;
n = i;
}
}
for(i=0;i<5;i++)
{
for(j=4;j>=0;j--)
{
if(i+j==4&&i!=j)
{
if(b {
b = C_array[i][j];
m = i;
n = j;
}
}
}
}
cout<<"矩阵中对角线上最大元素是:"<
}
};

void main()
{
int t[5][5];
int i,j;
cout<<"请输入一个5*5的矩阵:"< for(i=0;i<5;i++)
for(j=0;j<5;j++)
cin>>t[i][j];
SUM sum(t);
sum.process1();
sum.process2();
sum.process3();
fflush(stdin);
getchar();
}
用VS2008写的,测试过了,没有问题。