搜索
查看: 252|回复: 1
打印 上一主题 下一主题

为什么无法运行

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2020-3-27 14:07:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
int a[51][51];
int book[51][51],n,m,sum;
void dfs(int x,int y,int color)
{
    int next[4][2]={{0, 1},
                    {1, 0},
                    {0,-1},
                    {-1,0}};
    int k,tx,ty;
    a[x][y]=color;
    for(k=0;k<=3;k++)
    {
        tx=x+next[k][0];
        ty=y+next[k][1];
        if(tx<1||tx>n||ty<1||ty>m)
            continue;
        if(a[tx][ty]>0&&book[tx][ty]==0)
        {
            sum++;
            book[tx][ty]=1;
            dfs(tx,ty,color);
        }
    }
    return;
}
int main()
{
    int i,j,num=0;
    printf("请输入地图大小:");
    scanf("%d %d",&n,&m);
    Sleep(100);
    system("cls");
    printf("请输入地图");
    Sleep(1000);
    system("cls");
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            a[i][j]=getche();
            printf("  ");
        }
        printf("\n");
    }

    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(a[i][j]>0)
            {
                num--;
                book[i][j]=1;
                dfs(i,j,num);
            }
        }
    }

    Sleep(1000);
    system("cls");
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }
    printf("有%d个小岛\n",-num);
    getchar();
    return 0;
}


来自 2#
 楼主| 发表于 2020-3-27 15:48:22 | 只看该作者
本帖最后由 嘟嘟编程 于 2020-3-27 15:51 编辑

不好意思,打错了,应该是运行结果错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表