题解 | #扫雷#
扫雷
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; }