社区讨论
求助,只有30。
P2670[NOIP 2015 普及组] 扫雷游戏参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo1n85ok
- 此快照首次捕获于
- 2023/10/22 23:48 2 年前
- 此快照最后确认于
- 2023/11/03 00:31 2 年前
C
#include<stdio.h>
int n,m;
char ma[200][200],c[200];
char sum(int x,int y){
int ans=0;
if(ma[x][y]=='*') return '*';
if(x-1>=0){
if(ma[x-1][y] == '*') ans++;
}
if(y-1>=0){
if(ma[x][y-1] == '*') ans++;
}
if(y+1<m){
if(ma[x][y+1] == '*') ans++;
}
if(x+1<n){
if(ma[x+1][y] == '*') ans++;
}
if(x+1<n && y+1 <n){
if(ma[x+1][y+1] == '*') ans++;
}
if(x-1>=0 && y+1 <n){
if(ma[x-1][y+1] == '*') ans++;
}
if(x+1<n && y-1 >=0){
if(ma[x+1][y-1] == '*') ans++;
}
if(x-1>=0&& y-1 >=0){
if(ma[x-1][y-1] == '*') ans++;
}
return 48 + ans;
}
int main(){
char f;
scanf("%d%d",&n,&m);
for(int i = 0;i<n;i++){
scanf("%s",c);
for(int j = 0;j<m;j++){
ma[i][j] = c[j];
}
}
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
f = sum(i, j);
if(f!='*') {
printf("%d",f-48);
}
else{
printf("%s",&f);
}
}
printf("\n");
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...