这题题目我就没有看懂,还是学长告诉的,意思就是:@在一块的算作一块油田,求一共有多少块油田!坑爹吧!写完后,更加坑爹的事发生了,我定义了全局变量后,竟然还定义了局部变量!害的我找了好久,还是在学长帮助下找到错误的!
#include<stdio.h>
char a[100][100];
int m,n;
int movex[8][2]={{1,0},{1,-1},{1,1},{0,-1},{0,1},{-1,0},{-1,-1},{-1,1}};
void dfs(int x,int y)
{
int xx,yy;
int i;
for(i=0;i<8;i++)
{
xx=x+movex[i][0];
yy=y+movex[i][1];
if(xx<0||xx>=m||yy<0||yy>=n)
continue;
if(a[xx][yy]=='*')
continue;
a[xx][yy]='*';
dfs(xx,yy);
}
}
int main()
{
int i,j,sum;
while(scanf("%d%d",&m,&n)!=EOF)
{
if(m==0&&n==0)break;
for(i=0;i<m;i++)
scanf("%s",a[i]);
sum=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]=='@')
{
dfs(i,j);
sum++;
}
}
}
printf("%d\n",sum);
}
return 0;
}