题解 | #扫雷#
扫雷
https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd
#include<stdio.h>
#include<string.h>
char Jugde(char arr[1002][1002], int i, int j)
{
char count = '\0';
for (int a = i - 1; a <= i + 1; a++)
{
for (int b = j - 1; b <= j + 1; b++)
{
if (arr[a][b] == '*')
{
count++;
}
}
}
return count;
}
int main()
{
char arr[1002][1002];
int n, m;
memset(arr, '.',n*m);
scanf("%d %d", &n, &m);
getchar();
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%c", &arr[i][j]);
}
getchar();
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (arr[i][j] == '.')
{
char ret = Jugde(arr, i, j);
arr[i][j] = ret;
}
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (arr[i][j] == '*')
{
printf("*");
}
else
{
printf("%d", arr[i][j] - '\0');
}
}
printf("\n");
}
return 0;
}

查看1道真题和解析