递归!
#include<stdio.h>
#include<string.h>
#define max 25
char g[max][max];
int w,h;
int f(int i,int j)
{
if(i<0||i>=w||j<0||j>=h)
return 0;
else if(g[i][j]=='#')
return 0;
else
{
g[i][j]='#';
return 1+f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1);
}
}
main()
{
int i,j,num;
while(scanf("%d%d",&h,&w)&&w!=0&&h!=0)
{
for(i=0;i<w;i++)
scanf("%s",&g[i]);
for(i=0;i<w;i++)
for(j=0;j<h;j++)
if(g[i][j]=='@')
printf("%d/n",f(i,j));
}
}