关于math.h里的abs()编译错误,说是找不到定义范围
程序代码:
#include"stdio.h" #include"string.h" #include"math.h" int x[22][22]; int ff(int a,int b) { int f,y[4],i,su; y[0]=x[a-1][b]; y[1]=x[a][b+1]; y[2]=x[a+1][b]; y[3]=x[a][b-1]; if(x[a][b]>0) f=1; else f=0; for(i=0,su=0;i<4;i++) { if((y[i]>0)==f) su-=abs(y[i]); else su+=abs(y[i]); if(y[i]<0) y[i]=-1*y[i]; } return su; } int main() { int n,m,i,j,ma,mi,mj; while(scanf("%d%d",&n,&m),n+m) { for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%d",&x[i][j]); ma=ff(1,1); mi=1;mj=1; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(ma<ff(i,j)) { ma=ff(i,j); mi=i; mj=j; } } printf("%d %d %d\n",mi,mj,ma); memset(x,0,sizeof(x)); } }
RT问题求解释