大神求助 二维字符数组
如图 a-y的5乘5的数组,需要输出对角线的字符运行后全部输出的都是g,而且是死循环
把 18,19,21 行去掉。 #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);
}
你18行for循环的判断表达式只写了一个等于号,循环体里面也没有把j置零,如果运行到那里就会死循环 最里层for循环卡死,用if判断就行 人才!人才啊!你怕是不知道中间那个是什么意思!符合它就会执行循环体里的语句!所以一遇到i=j时,就会执行。而ij又没变,判断,还是这个家伙,于是又继续执行。当然是无限循环了!
页:
[1]