社区讨论

求助,只有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 条回复,欢迎继续交流。

正在加载回复...