第一道DFS。。。。。比较水。。。
#include<stdio.h>
#include<string.h>
int m,n;
char a[30][30];
int ans;
int ans1;
int move[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
void DFS(int p, int q)
{
if(p <= m - 1 && p >= 0 && q >= 0 && q <= n - 1 && a[p][q] == '.')
{
ans++;
a[p][q] = '#';
}else {
return;
}
DFS(p - 1, q);
DFS(p, q - 1);
DFS(p, q + 1);
DFS(p + 1, q);
}
void main(){
int i,j,w,e,k;
while(scanf("%d %d",&n,&m)&&m!=0){
ans=0;
memset(a,0,sizeof(a));
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
{
scanf("\n%c", &a[i][j]);
if(a[i][j] == '@')
{
w= i;
e= j;
a[i][j] = '.';
}
}
DFS(w,e);
printf("%d\n",ans);
}
return;
}