题解 | #扫雷#
扫雷
https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd
#include <stdio.h>
int main() {
int n,m;
int i,j;
scanf("%d%d",&n,&m);
getchar();//吃掉回车键
char arr[n+2][m+2];
for(i=0;i<n+2;i++)
{
for(j=0;j<m+2;j++)
{
arr[i][j]='0';
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%c",&arr[i][j]);
}
getchar();
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(arr[i][j]=='*')//如果是*,继续
{
continue;
}
else
{
int sum = 0;//判断8个位置是否有*
if (arr[i - 1][j] == '*') sum++;
if (arr[i - 1][j - 1] == '*') sum++;
if (arr[i][j - 1] == '*')sum++;
if (arr[i + 1][j - 1] == '*') sum++;
if (arr[i + 1][j] == '*') sum++;
if (arr[i + 1][j + 1] == '*') sum++;
if (arr[i][j + 1] == '*') sum++;
if (arr[i - 1][j + 1] == '*') sum++;
arr[i][j] = sum+ 48;
}
}
}
for(i=1;i<=n;i++)//输出
{
for(j=1;j<=m;j++)
{
printf("%c",arr[i][j]);
}
printf("\n");
}
return 0;
}
#菜狗的解题#

