扫雷
我们总共要有m*n个字符要放进去
要有一个棋盘 但为了估计最边缘的棋子,所以要创建一个n+2行,m+2列的棋盘
具体看代码
#include <stdio.h>

int main() {
    
    int n=0;//行
    int m=0;//列
    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(i=1;i<=n;i++)
    {
        for(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(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            printf("%c",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}