、输入一个2*3的二维数组,找出最大值以及它的行下标和列下标,并输出该矩阵

输入输出示例:Enter a array(2*3):5 8 9 6 -5 -2max=a[0][2]=95 8 96 -5 -2
2024-12-17 16:36:47
推荐回答(2个)
回答1:

不用楼上那么复杂。。。非常简单:

#include

int main()
{
int array[2][3] = {{5,8,9},{6,-5,-2}};
int max=0;//保存最大值
int line;//保存行下标
int row;//保存列下标
int n,m;
for(n=0;n<2;n++) {
for(m=0;m<3;m++) {
if(array[n][m]>max) {
max = array[n][m];
line = n;
row = m;
}
}
}

printf("max=a[%d][%d]=%d",line,row,max);
return 0;
}

回答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<<"对角线上所有元素的和为:"< }
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写的,测试过了,没有问题。
另外,站长团上有产品团购,便宜有保证