输入格式卡死了 出现了莫名其妙的问题
查看原帖
输入格式卡死了 出现了莫名其妙的问题
449015
real1ze楼主2021/2/28 00:29

如代码 在大佬的指导下从

 for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            scanf("%c",&a[i][j]);
        }
        getchar();
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            scanf("%c",&b[i][j]);
        }
        getchar();
    }

的输入变成了

for(int i=0;i<n;i++){
        scanf("%s",a[i]);
    }
    for(int i=0;i<n;i++){
        scanf("%s",b[i]);
    }
    getchar();
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            c[i][j]=a[i][j];   
        }
    }

但是这样出现了莫名其妙的问题 比如用第一个去跑

4
--@@
@@--
@-@-
-@-@
@@--
--@@
-@-@
@-@-

这个数据 就会得到正确的结果4 但是如果用第二个代码(字符串)就得到7 这说明我的代码判断部分没问题 问题是在数组存入上 后来经过下面的验证也证实了

然后我监视了输入 发现了一个很奇怪的地方 在执行到将a中字符导入c中前 a中放的数据完全和输入一致 但是在进行

getchar();
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            c[i][j]=a[i][j];   
        }
    }

这一步前 我需要输入一个回车 然后这个时候a[0][0]就会变成0元素了 同样c中复制的也是0进而导致下面判断出错。不知道为什么会这样 谢谢(ps:c数组我复制过来是因为后期要用)

2021/2/28 00:29
加载中...