晓觉懿 发表于 2020-6-3 22:31:10

大神求助 二维字符数组

如图 a-y的5乘5的数组,需要输出对角线的字符
运行后全部输出的都是g,而且是死循环

永恒的蓝色梦想 发表于 2020-6-3 22:32:55

把 18,19,21 行去掉。

大裤衩子 发表于 2020-6-4 14:01:32

#include <stdio.h>
#include <stdlib.h>

#define N 5
#define M 5
int main()
{
        char c[]={{'a','b','c','d','e'},
                               {'f','g','h','i','j'},
                               {'k','l','m','n','o'},
                               {'p','q','r','s','t'},
                               {'u','v','w','x','y'}
                                };
        for(int i=0; i<M; i++)
        {
                for(int j=0; j<N; j ++)
                {
                        if(i==j)
                        {
                                fprintf(stdout,"%c\n",c);       
                        }
                }
        }       

        exit(0);
}

Darth_EF 发表于 2020-6-4 16:42:38

你18行for循环的判断表达式只写了一个等于号,循环体里面也没有把j置零,如果运行到那里就会死循环

love_qj 发表于 2020-6-4 18:52:03

最里层for循环卡死,用if判断就行

405794672 发表于 2020-6-5 11:04:28

人才!人才啊!你怕是不知道中间那个是什么意思!符合它就会执行循环体里的语句!所以一遇到i=j时,就会执行。而ij又没变,判断,还是这个家伙,于是又继续执行。当然是无限循环了!
页: [1]
查看完整版本: 大神求助 二维字符数组