悠游


私信TA

用户名:uq_87643911115

访问量:6710

签 名:

你好

等  级
排  名 42
经  验 12731
参赛次数 0
文章发表 206
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

大家好!我是糕手

解题思路:

他这个地雷数是该点周围一圈8个有几个地雷,试试深度优先搜索算法
注意事项:

参考代码:

#include<stdio.h>
int dfs(int n,int m,int row,int column,char a[100][100])//对周围一圈进行遍历,8个元素
{
    int rx[8]={1,-1,0,0,1,-1,1,-1};
    int cy[8]={0,0,1,-1,1,-1,-1,1};
    int k=0;//地雷数
    for(int i=0;i<8;i++)
    {
        int new_row=row+rx[i];
        int new_column=column+cy[i];
        if(new_row>=0&&new_row<n&&new_column>=0&&new_column<m&&a[new_row][new_column]=='*')
        {
            k+=1;
        }
    }
    return k;
}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	
	char a[100][100];
	for(int i=0;i<n;i++)
	{
	   scanf("%s",a[i]);
	}
	for(int i=0;i<n;i++)
	{
	    for(int j=0;j<m;j++)
	    {
	        int sum=0;
	        if(a[i][j]=='*')
	        {
	            printf("*");
	        }
	        else
	        {
	            sum=dfs(n,m,i,j,a);
	            printf("%d",sum);
	        }
	    }
	    printf("\n");
	}
	return 0;
}


如果你非要试试用%c收取的话,帮我也看看我这思路哪错了(╹ڡ╹ ):

        int n,m;
	scanf("%d%d",&n,&m);
	getchar();
	char a[100][100];
	for(int i=0;i<n;i++)
	{
	   for(int i=0;i<m;i++)
	  {
	   scanf("%c",a[i][j]);
	   }
	   scanf("\n");
	}


 

0.0分

0 人评分

  评论区

  • «
  • »