tywofxd


私信TA

用户名:tywofxd

访问量:11086

签 名:

等  级
排  名 3300
经  验 1970
参赛次数 0
文章发表 20
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

解题思路:

注意事项:

在输入的时候可以按行输入(以字符串的形式),不用一个个输入

参考代码:

#include <stdio.h>

#include<string.h> 


int main()

{

int m,n,i,j,sum=0,k;

char field[100][100];

char res[100][100];

while(scanf("%d%d",&n,&m)==2&&m!=0&&n!=0)

{

sum++;

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

{

scanf("%s",field[i]);

}

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

{

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

{

if(field[i][j]!='*') 

{

k=0;

if(i-1>=0)//看这一格的上面是否有行 

{

if(j-1>=0)//看这一格的左边是否有行 

{

if(field[i-1][j-1]=='*')//这一行的左上角元素 

k++; 

}

if(field[i-1][j]=='*')//这一行的正上方元素 

k++;

if(j+1<m)//看一格的右边是否有行

{

if(field[i-1][j+1]=='*')//这一格的右上方元素 

{

k++;

}

}

if(j-1>=0)

{

if(field[i][j-1]=='*')//看这一格的左边元素 

k++;

}

if(j+1<m)

{

if(field[i][j+1]=='*')//看这一格的右边元素 

k++;

if(i+1<n)//看这一格的下一行 

{

if(j-1>=0)

{

if(field[i+1][j-1]=='*')//看这一格的左下方元素 

k++;

  } 

  if(field[i+1][j]=='*')//看这一格的正下方元素 

  k++; 

  if(j+1<m)

  {

  if(field[i+1][j+1]=='*')//看这一格的右下方元素 

  k++;

   } 

  } 

res[i][j]=k+'0';//重置这一格的内容 

}

else res[i][j]='*';

}

}

printf("Field #%d:\n",sum);

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

{

printf("%s\n",res[i]);

}

printf("\n");

}

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »