[求助]
没有构成死循环的是( )A)int k=1000;
do {++k} while(k>=1000);
B)int s=36;
while(s);--s;
其实A项我已经知道没有构成死循环,
请问B项为何会构成死循环
----------------解决方案--------------------------------------------------------
回复:你的 while(s);
后面又个;号啊
所以它的循环体是没有内容的,但由于S一直都为真,所以就一直执行了,肯定就是死循环了哈
----------------解决方案--------------------------------------------------------
while(s)后多了一个;号
----------------解决方案--------------------------------------------------------
A)int k=1000;
do {++k} while(k>=1000);
也构成死循环吧?
----------------解决方案--------------------------------------------------------
晕
A确实是死循环啊
我可是亲自试的
(真受不了楼主,你是不是打错了)
----------------解决方案--------------------------------------------------------
难道版主也认为A不是死循环吗? 死循环不就是无限制的循环下去吗? 我试过的 屏幕上的数字打个没完没了的!! 见笑了!!
----------------解决方案--------------------------------------------------------
偶也认为a是死循环了,没有让他停止的条件
----------------解决方案--------------------------------------------------------
/* ±ê×¼ÎĵµÄ£°å */
#include "Stdio.h" #include "Conio.h"
main() { int k; k=1000; do {++k;} while (k>=1000); printf("%d",k); getch(); } B项改了一下 但不知为何输出‘-32768’
----------------解决方案--------------------------------------------------------
首先你的k初始化等于1000
循环体k++后k应该都是大于1000的
即出现死循环
来理论上 应该是没有输出的 程序也不会自动停止
但在计算机中 整形变量用一个16位二进制表示
范围在 -32768到 32767 之间
32767=0111111111111111 (应该是16位 没数, 其中首位表示符号 )
再加1后得到 1000000000000000
即 -32768 这是k<1000
循环结束 答应-32768
----------------解决方案--------------------------------------------------------
厉害啊
原来如此
我一直以为这是个死循环呢!(汗颜啊)
高手
顶顶楼上的
----------------解决方案--------------------------------------------------------