#include <stdio.h>
#include <string.h>
char visit[20][20];
int count,m,n;
void dfs(int x,int y)
{
count++;
visit[x][y]='#';
if(x!=0&&visit[x-1][y]=='.')dfs(x-1,y);
if(x!=n-1&&visit[x+1][y]=='.')dfs(x+1,y);
if(y!=0&&visit[x][y-1]=='.')dfs(x,y-1);
if(y!=m-1&&visit[x][y+1]=='.')dfs(x,y+1);
return ;
}
int main()
{
int x,y;
while(scanf("%d%d",&m,&n)&&(m!=0||n!=0))
{
count=0;
memset(visit,'#',400);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
scanf(" %c",&visit[i][j]);
if(visit[i][j]=='@')
{
x=i;
y=j;
}
}
dfs(x,y);
printf("%d\n",count);
}
return 0;
}
搜索,没什么难度!!!细心点就能过