海选女主角

38 阅读1分钟

#include<stdio.h>
double jiudui(int fenshu);
int main()
{
    int j,n,m,i,max=0,a,b;
    int fenshu;
    while(scanf("%d %d",&n,&m)!=EOF)
    {
        max=0;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
            {
                scanf("%d",&fenshu);
                if(jiudui(fenshu)>jiudui(max))
                {
                    max=fenshu;
                    a=i;
                    b=j;
                }

            }
        }
        printf("%d %d %d\n",a,b,max);
    }
    return 0;
}

double jiudui(int fenshu)
{
    if(fenshu>=0)
        return fenshu;
    else
        return -fenshu;
}

#include<stdio.h>
double jiudui(int fenshu);
int main()
{
int j,n,m,i,max=0,a,b;
int fenshu[10][10];
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&fenshu[i][j]);
if(jiudui(fenshu[i][j])>jiudui(max))
{
max=fenshu[i][j];
a=i;
b=j;
}

            }
}
printf("%d %d %d\n",a,b,max);
}
return 0;
}

double jiudui(int fenshu)
{
if(fenshu>=0)
return fenshu;
else
return -fenshu;
}

 

 关键在于二维数组求最大值


但是会有一个陷阱!
我们知道,有符号long型能表示的范围是-2147483648 ~ 2147483647。你会发现。负数的范围其实比正数大。
所以,如果你直接用long型,然后用abs来取绝对值,就可能造成数据溢出。你可以自己试一下输出abs(-2147483648)的值。
解决方法是可以用double型来替换它