acm17773729889 2017-07-15 08:53 采纳率: 0%
浏览 1030

poj 2386这都题 这么做 哪里错了? 求大神指点

 #include<stdio.h>
int n,m;
char field[1000][1000];
int dx,dy,nx,ny,res;
void dfs(int x,int y )
{
    field[x][y]='.';
    for(dx=-1;dx<=1;dx++)
    {
        for(dy=-1;dy<=1;dy++)
        {
            nx=dx+x;
            ny=dy+y;
            if(0<=nx&&nx<n&&0<=ny&&ny<m&&field[nx][ny]=='W')dfs(nx,ny);
        }
    }
}
int main()
{
    int i,j;
    scanf("%d%d",&n,&m);

        for(i=0;i<n;i++)
        {
            getchar();
            for(j=0;j<m;j++)
            {
                scanf("%c",&field[i][j]);
            }
        }
        res=0;
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
            {
                if(field[i][j]=='W')
                {
                    dfs(i,j);
                    res++;
                }
            }
        }
        printf("%d\n",res);
    return 0;
}

  • 写回答

2条回答

  • threenewbee 2017-07-15 11:27
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services