题解 | 扫雷

#include <stdio.h>

int main() {
    int n,m;
    scanf("%d %d",&n,&m);
    getchar();
    char arr[n+2][m+2];
    char a=0;
    long i=0;
    long j=0;

    for(i=0;i<n+2;i++)
    {
        for(j=0;j<m+2;j++)
        {
            arr[i][j]='0';
        }
    }

    //二者留其一即可
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            scanf("%c ",&a);
            arr[i][j]=a;
        }
        // getchar();
    }


    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(arr[i][j]=='*'){
                continue;
            }
            else{
                int cun = 0;
                if (arr[i - 1][j] == '*') cun++;
                if (arr[i - 1][j - 1] == '*') cun++;
                if (arr[i][j - 1] == '*')cun++;
                if (arr[i + 1][j - 1] == '*') cun++;
                if (arr[i + 1][j] == '*') cun++;
                if (arr[i + 1][j + 1] == '*') cun++;
                if (arr[i][j + 1] == '*') cun++;
                if (arr[i - 1][j + 1] == '*') cun++;
                arr[i][j] = cun + 48;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            printf("%c",arr[i][j]);
        }
        printf("\n");
    }
    return 0;   
}



全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务