duaiduai


私信TA

用户名:duaiduai

访问量:7035

签 名:

等  级
排  名 3077
经  验 2043
参赛次数 0
文章发表 7
年  龄 20
在职情况 学生
学  校 HUST
专  业 CS

  自我简介:

TA的其他文章


解题思路:





注意事项:





参考代码:

#include<stdio.h>
int main()
{
 int x,y;
 int count;
 int vectors[8][2]=
 {
  {-1,-1}, 
  {0,-1} ,
  {1,-1},
  {1,0},
  {1,1},
  {0,1},
  {-1,1},
  {-1,0},
  } ;
 while(scanf("%d%d",&x,&y)!=EOF&&x&&y)
 {
  
  count++;
  getchar();
  char map[x][y];
  for(int i=0;i<x;i++)     //生成地图 
   {
   for(int j=0;j<y;j++)
    map[i][j]=getchar();
    getchar();
   }
  for(int i=0;i<x;i++)
   for(int j=0;j<y;j++)
    {
     int num=0;
     if(map[i][j]=='*')
      continue;
     else
      for(int k=0;k<8;k++)
       {
        int m,n;
        m=i+vectors[k][0];
        n=j+vectors[k][1];
        if(m>=0&&m<=x)
         if(n>=0&&n<=y)
          if(map[m][n]=='*')
           num++;
           
       }
      map[i][j]=num;
     
      
     } 
     
     
  printf("Field #%d:\n",count);
     
  for(int i=0;i<x;i++)     //打印地图 
   {
   for(int j=0;j<y;j++)
    {
    if(map[i][j]!='*')
     printf("%d",map[i][j]);
    else
     putchar(map[i][j]);
    }
    printf("\n");
    
   }
   putchar('\n');
     
  
 }
}


 

0.0分

0 人评分

  评论区

  • «
  • »