分析:水题,注意计算某个位置的分数时他自己的不算,加减都是绝对值(一开始这里还理解错了)。
#include<iostream>
#include<cmath>
using namespace std;
int a[25][25];
int main()
{
int i,j,n,m;
int maxv,maxi,maxj,tmp;
while(cin>>n>>m && n+m)
{
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j];
maxv=-100000000;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
tmp=0;
if(i>0)
{
if(a[i][j]*a[i-1][j]<0)
tmp+=abs(a[i-1][j]);
else
tmp-=abs(a[i-1][j]);
}
if(j>0)
{
if(a[i][j]*a[i][j-1]<0)
tmp+=abs(a[i][j-1]);
else
tmp-=abs(a[i][j-1]);
}
if(i<n-1)
{
if(a[i][j]*a[i+1][j]<0)
tmp+=abs(a[i+1][j]);
else
tmp-=abs(a[i+1][j]);
}
if(j<m-1)
{
if(a[i][j]*a[i][j+1]<0)
tmp+=abs(a[i][j+1]);
else
tmp-=abs(a[i][j+1]);
}
if(maxv<tmp)
{
maxv=tmp;
maxi=i;
maxj=j;
}
}
cout<<maxi+1<<" "<<maxj+1<<" "<<maxv<<endl;
}
return 0;
}原文地址:http://blog.csdn.net/a809146548/article/details/45533415