tj
2025-08-31 20:09:28
发布于:福建
4阅读
0回复
0点赞
这道题很水的懂吗
#include <bits/stdc++.h>
using namespace std;
const long long N = 1500;
const long long M = 1500;
char a[N][M];
long long n , m , cnt =0;
long long dir[8][2] = {{-1 , -1} , {-1 , 0} , {-1 , 1} ,
{0 , -1 } , {0 , +1} ,
{+1 , -1} , {+1 , 0} , {+1 , +1}};
char calc(long long x , long long y) {
for (int i = 0 ; i < 8 ; i++) {
if (a[x + dir[i][0]][y + dir[i][1]]) {
cnt++;
}
}
return cnt + '0';
}
int main( ) {
scanf("%lld%lld" , & n , & m );
for (int i = 1 ; i <= n ; i++) {
for (int j = 1 ; j <= m ; j++) {
scanf("%c" , &a[i][j]);
}
}
for (int i = 1 ; i <= n ; i++) {
for (int j = 1 ; j <= m ; j++) {
if (a[i][j] == '?') {
a[i][j] = calc(i , j);
}
}
}
for (int i = 1 ; i <= n ; i++) {
for (int j = 1 ; j <= m ; j++) {
printf("%c\n" , a[i][j]);
}
printf("\n");
}
}
这里空空如也
有帮助,赞一个