杭电1241

来源:互联网 发布:ptc软件下载 编辑:程序博客网 时间:2024/06/07 11:24

这题题目我就没有看懂,还是学长告诉的,意思就是:@在一块的算作一块油田,求一共有多少块油田!坑爹吧!写完后,更加坑爹的事发生了,我定义了全局变量后,竟然还定义了局部变量!害的我找了好久,还是在学长帮助下找到错误的!
#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;
}
原创粉丝点击