在2D数组c ++中找到绝对最大值

时间:2016-01-12 18:25:51

标签: c++ multidimensional-array

我为它编写了程序,但有时我的回答错了。请帮帮我(x和y是索引)

int main() 
{
int a[1000][1000];
int n,m,i,j,max,k,max1,x,y;
cin>>n>>m;
for(i=0;i<n;i++)
{
    for(j=0;j<m;j++)
    {
        cin>>a[i][j]; 
    }
}

max=a[0][0];
max1=abs(max);
for(i=0;i<n;i++)
{
    for(j=0;j<m;j++) 
    {
        if(abs(a[i][j])>=max1) 
        {
            max=a[i][j];
            k=max; x=i; y=j; 
        } 
    }
}
cout<<k<<endl<<x<<" "<<y; 
}

3 个答案:

答案 0 :(得分:2)

如果是条件,你不会更新内部的max1。

答案 1 :(得分:1)

你的逻辑有些不清楚。 你为什么要打扰绝对值?如果您想要具有最高绝对值的值,那么您应该在for循环中更新WSAETIMEDOUT,因为您正在使用它来决定是否需要新值。

max1

答案 2 :(得分:1)

    for (j = 0; j<m; j++
    if (abs(a[i][j]) >= max1) 
    max = a[i][j];
    k = max; x = i; y = j;
    }
cout << k << endl << x << " " << y;

}

更改:if(abs(a [i] [j])&gt; = max1)------&gt; MAX1 = A [i] [j]。你每次比较abs ti相同的固定数量max1是不变的。