疑惑

空间开的正好就会出错,多1个就不会,帮忙解释一下
#include <iostream>

using namespace std;

int main(){
    int n,m;
    cin>>n>>m;
    char a[n+1][m+1];
    char b[n][m];
    for(int i=0;i<n;i++){
        for(int j =0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            int num=0;
            if(a[i][j]=='*'){
                b[i][j]='*';
            }
            else {
                if(a[i-1][j-1]=='*') num++;
                if(a[i-1][j]=='*') num++;
                if(a[i-1][j+1]=='*') num++;
                if(a[i][j-1]=='*') num++;
                if(a[i][j+1]=='*') num++;
                if(a[i+1][j-1]=='*') num++;
                if(a[i+1][j]=='*') num++;
                if(a[i+1][j+1]=='*') num++;
                b[i][j]=num+'0';
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cout<<b[i][j];
        }
        cout<<endl;
    }

    return 0;
}

全部评论
你访问到j+1了呀,也就是有可能访问到m位置,就越界了,还有就是数组的大小要用常量定义,你这么写的话本来就有些问题。
点赞 回复 分享
发布于 2021-09-16 18:38

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务