C语言问题 为什么输出结果是 程序进入死循环?

供稿:hz-xin.com     日期:2024-05-18
C语言程序问题,为什么这个程序会陷入死循环

因为你超出数组边界了,a[10]指的是a[0]到a[9],你用到了a[10],就会数组越界

你好,我可以告诉你的是,这个程序的答案是 1 -2 ,原因是第一次是你所说的0然后取非继续做再输出一个数-2,但是,到while语句中的时候--X就变成了-3, -3取非不就是0吗,然后循环条件不就是假,假的还用继续做吗,根本就不是死循环,你犯的是一个相当然的错,记住,学C一定不能想当然,会吃苦头的,我自己以前就一直会想当然,结果成绩考不过那些脑子不如我的,只要你踏实了,C一定不是问题的。祝福你!

程序 确实 会死循环,当 i等于 6 循环结束,
当 i等于3 时 跳过 I++ 和 s+=I 回 到循环 开始, I 不再变化, 死循环了。
I=0, I++ 为 1,s=1;
I=1, I++ 为 2, s=1+2=3;
I=2, I++ 3, s=3+3=6
I=3 执行 continue, I 值 不变,死循环继续。
(白肚知道的这个 会话框, 拍入的 小写 I 总自己 变 大写 I,懒得反复纠正,你看懂意思就可以了)。

当i自增为3时,if(i==3||i==5)恒成立,i值无法自增,进入死循环

因为有个continue语句