、输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该矩阵输入输出示例:Enter a array(2*3):5 8 9 6 -5 -2max=a[0][2]=95 8 96 -5 -2

问题描述:

、输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该矩阵
输入输出示例:
Enter a array(2*3):5 8 9 6 -5 -2
max=a[0][2]=9
5 8 9
6 -5 -2

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<<"对角线上所有元素的和为:"<<s<<endl;
}
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<<"对角线上所有下标为偶数的元素的积为:"<<a<<endl;
}
void process3()
{
int i=0,j=0;
b = C_array[0][0];
m = 0;
n = 0;
for(i=0;i<5;i++)
{
if(b<C_array[i][i])
{
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<C_array[i][j])
{
b = C_array[i][j];
m = i;
n = j;
}
}
}
}
cout<<"矩阵中对角线上最大元素是:"<<b<<","<<"在矩阵的位置是第"<<m+1<<"行"<<n+1<<"列."<<endl;
}
};
void main()
{
int t[5][5];
int i,j;
cout<<"请输入一个5*5的矩阵:"<<endl;
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写的,测试过了,没有问题.
另外,站长团上有产品团购,便宜有保证