解题思路:要清楚扫雷游戏的逻辑,巧用二维数组

注意事项:注意m,n范围

参考代码:

#include<stdio.h>


int main(void)

 {

    

    int m,n;                            //定义的扫雷矩阵的行列数

    int i,j,k,l;                           //两次for循环的内外循环

   int a1,b1,c1,d1,sum=0;

    scanf("%d %d",&m,&n);

    char a[100][100];             //注意题目里给定的mn的范围

  for (i=0;i<m;i++)

  {

     scanf("%s",&a[i]);

  }

  for(i=0;i<m;i++)

  {

      for(j=0;j<n;j++)

      {

        if(a[i][j]=='*')

        {

         printf("%c",'*');

         continue;

        }

        a1=i-1;                                              //核心思路待检测数为中心的矩形(最多一共9个数)的上下左右坐标

        b1=i+1;

        c1=j-1;

        d1=j+1;

         if(a1<0)                                           //当待检测数在边缘时考虑的情况

             a1=0;

         if(c1<0) 

             c1=0;

          if(b1>m)

               b1=m;

           if(d1>n) 

              d1=n;

       for(k=a1;k<=b1;k++)

        {

            for(l=c1;l<=d1;l++)

        {

              if(a[k][l]=='*')

             

                sum=sum+1;                    //sum雷的个数

        }

        } 

        printf("%d",sum);

        sum=0;

}

printf("\n");

}

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论