题解 | #扫雷#
扫雷
https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Scan(int x, int y, int zu1[1000][1000])
{
int t = 0;
t = zu1[x - 1][y - 1] + zu1[x - 1][y] + zu1[x - 1][y + 1] + zu1[x][y - 1] + zu1[x][y + 1] + zu1[x + 1][y - 1] + zu1[x + 1][y] + zu1[x + 1][y + 1];
return t;
}
int main()
{
char zu[1000][1000] = { 0 };
int zu1[1000][1000] = { 0 };
char print[1000][1000] = { 0 };
int i1, i2;
int n, m;
scanf("%d %d", &n, &m);
getchar();
for (i1 = 1; i1 <=n; i1++)
{
for (i2 = 1; i2 <=m; i2++)
{
scanf("%c",&zu[i1][i2]);
if (zu[i1][i2] == '*')
{
zu1[i1][i2] = 1;
}
}
getchar();
}
for (i1 = 1; i1 <= n; i1++)
{
for (i2 = 1; i2 <= m; i2++)
{
if (zu[i1][i2] == '*')
{
print[i1][i2] = '*';
}
else
{
int t = Scan(i1, i2, zu1);
print[i1][i2] = t+'0';
}
}
}
for (i1 = 1; i1 <= n; i1++)
{
for (i2 = 1; i2 <= m; i2++)
{
printf("%c", print[i1][i2]);
}
printf("\n");
}
return 0;
}
