69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
char map[30][30];
int temp[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int n,m,ans;
void dfs(int x,int y){
ans++;
map[x][y]='#';
for(int k=0;k<4;k++){
int a=x+temp[k][0];
int b=y+temp[k][1];
if(a<m&&b<n&&a>=0&&b>=0&&map[a][b]=='.')
dfs(a,b);
}
return ;
}
int main(){
int fx,fy;
int i,j;
while(~scanf("%d%d%*c",&n,&m),n+m!=0){ 谁能解释下%*c是什么意思,如果没有这个的话结果根本就不一样,就这么重要么。。。。。
ans=0;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%c",&map[i][j]);
if(map[i][j]=='@'){
fx=i;
fy=j;
}
}
getchar();
}
dfs(fx,fy);
printf("%d\n",ans);
}
return 0;
}