社区讨论

各位佬,离谱啊

P2670[NOIP 2015 普及组] 扫雷游戏参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m4bfii9f
此快照首次捕获于
2024/12/05 22:45
去年
此快照最后确认于
2025/11/04 13:18
4 个月前
查看原帖
这道题的测试所给样例点就没过,m,n=3读不了第三行 求各位大佬看看问题在哪,我实在是看不出来,应该不是边界问题,这题起始i=1其实就去掉了
C
#include<stdio.h>
int n,m;

int main(){

 char a[120][120];
    int b[120][120],n,m,i,j;//数组定义(二维)
    scanf("%d %d",&n,&m);//读入行、列
    for(i=1;i<=120;i++)
        for(j=1;j<=120;j++)
            b[i][j]=0;//给数组赋值为0
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            scanf("%c",&a[i][j]);
            if(a[i][j]=='*')//判断:如果是地雷
            {
                b[i+1][j+1]++;
                b[i+1][j-1]++;
                b[i+1][j]++;
                b[i][j+1]++;
                b[i][j-1]++;
                b[i-1][j]++;
                b[i-1][j+1]++;
                b[i-1][j-1]++;//相邻的八个格子都+1                
            }
        }
for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
        if(a[i][j]=='*')printf("*");
        else printf("%d",b[i][j]);
    }
    printf("\n");
}


return 0;

}

回复

4 条回复,欢迎继续交流。

正在加载回复...