2024-04-06 21:16:53
发布于:浙江
大佬求解
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
string s[114];
for(int i = 1;i<=n;i++)cin>>s[i];
for(int i = 1;i<=n;i++){
for(int j = 0;j<m;j++){
if(s[i][j]=='*')cout<<'*';
else {
int sum = 0;
if(s[i-1][j]/*上*/=='*')sum++;
if(s[i+1][j]/*下*/=='*')sum++;
if(s[i][j-1]/*左*/=='*')sum++;
if(s[i][j+1]/*右*/=='*')sum++;
if(s[i-1][j-1]/*左上*/=='*')sum++;
if(s[i+1][j-1]/*左下*/=='*')sum++;
if(s[i-1][j+1]/*右上*/=='*')sum++;
if(s[i+1][j+1]/*右下*/=='*')sum++;
cout<<sum;
}
}
cout<<"\n";
}
return 0;
}
全部评论 5
《114》
2024-04-08 来自 浙江
2不行吗
2024-04-08 来自 浙江
0
def cnt_mines(fld, r, c, n, m):
dirs = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]
count = 0
for dr, dc in dirs:
nr, nc = r + dr, c + dc
if 0 <= nr < n and 0 <= nc < m and fld[nr][nc] == '*':
count += 1
return countdef main():
n, m = map(int, input().split())
fld = [input().strip() for _ in range(n)]
res = [[''] * m for _ in range(n)]for i in range(n): for j in range(m): if fld[i][j] == '?': res[i][j] = str(cnt_mines(fld, i, j, n, m)) else: res[i][j] = fld[i][j] for row in res: print(''.join(row))
if name == "main":
main()4天前 来自 浙江
0你的定义是一维,后面是二维,肯定错啊
2024-08-09 来自 广东
0你也是逆天,去问问老师吧
2024-08-09 来自 浙江
06
string它本来就是个数组2024-08-11 来自 浙江
0而且是WA不是CE
2024-08-11 来自 浙江
0
我的代码跟你差不多,可以参考一下
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; char a[105][105]; cin >> n >> m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin >> a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int sum=0; if(a[i][j]=='?'){ if(a[i+1][j]=='*'){ sum++; } if(a[i+1][j-1]=='*'){ sum++; } if(a[i+1][j+1]=='*'){ sum++; } if(a[i-1][j]=='*'){ sum++; } if(a[i-1][j+1]=='*'){ sum++; } if(a[i-1][j-1]=='*'){ sum++; } if(a[i][j+1]=='*'){ sum++; } if(a[i][j-1]=='*'){ sum++; } cout << sum; }else{ cout << a[i][j]; } } cout << endl; } return 0; }
2024-08-09 来自 广东
0需要处理边界情况,可以在访问某个格子的周围格子时,先判断该格子是否在边界内,然后再进行访问
2024-04-07 来自 浙江
0加了,错了更多了😓
2024-04-07 来自 浙江
0就是边界问题,j-1的时候索引为负数,就会出问题。
2024-04-07 来自
0同时,i-1的时候因为是空字符串,也会索引超出。
2024-04-07 来自
0
有帮助,赞一个