int m,n; int map[100][100]; int vis[100][100]; int dir[8][2]={{1,0},{0,1},{-1,0},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; int fit(int x,int y) { if(x>=0&&x<m) if(y>=0&&y<n) return 1; return 0; } int fun(int x,int y) { int nowx,nowy,tempx,tempy; nowx=x; nowy=y; vis[nowy][nowx]=1; for(int i=0;i<8;i++) { tempx=x+dir[i][0]; tempy=y+dir[i][1]; if(fit(tempx,tempy)&&vis[tempy][tempx]==0&&map[tempy][tempx]==1) fun(tempx,tempy); } return 1; } int main() { while(scanf("%d%d",&n,&m)!=EOF) { getchar(); int i,j,sum=0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%1d",&map[i][j]); vis[i][j]=0; } getchar(); } for(i=0;i<n;i++) for(j=0;j<m;j++) if(vis[i][j]==0&&map[i][j]==1) { sum=sum+fun(j,i); } printf("%d\n",sum); } } /* Main.c: In function ‘main’: Main.c:31:5: warning: implicit declaration of function ‘scanf’ [-Wimplicit-function-declaration] while(scanf("%d%d",&n,&m)!=EOF) ^ Main.c:31:11: warning: incompatible implicit declaration of built-in function ‘scanf’ [enabled by default] while(scanf("%d%d",&n,&m)!=EOF) ^ Main.c:31:32: error: ‘EOF’ undeclared (first use in this function) while(scanf("%d%d",&n,&m)!=EOF) ^ Main.c:31:32: note: each undeclared identifier is reported only once for each function it appears in Main.c:33:9: warning: implicit declaration of function ‘getchar’ [-Wimplicit-function-declaration] getchar(); ^ Main.c:52:9: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration] printf("%d\n",sum); ^ Main.c:52:9: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default] */ |
Double click to view unformatted code.