这是一道绝对坑的题
也长见识了
做这道题重点是方向问题
可以像迷宫那样定义一个方向
坑就坑在 两个概念:1相邻之间空格 和 2数据末尾空格
这道题我一直在每一个输出空格 无限wrong
如果是数据末尾空格可以在末尾直接 空
如果在相邻数据空 就在输入结束后空(神奇的空格)
#include<stdio.h>
int dir[8][2]={{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1} };
int main()
{
int m,n,count=0;
char map[102][102];
while(1)
{
scanf("%d%d",&m,&n);
if(m==0&&n==0)
break;
for(int i=0;i<m;i++)
{
scanf("%s",map[i]);
}
if(count>0)
printf("\n");
count++;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(map[i][j]=='.')
{
map[i][j]='0';
}
if(map[i][j]=='*')
{
for(int k=0;k<8;k++)
{
if(i+dir[k][1]>=0&&i+dir[k][1]<m&&j+dir[k][0]>=0&&j+dir[k][0]<n)
{
int y=i+dir[k][1];
int x=j+dir[k][0];
if(map[y][x]=='.')
{
map[y][x]='0';
}
if(map[y][x]>='0'&&map[y][x]<='9')
{
map[y][x]++;
}
}
}
}
}
}
printf("Field #%d:\n",count);
for(int i=0;i<m;i++)
{
printf("%s\n",map[i]);
}
}
}