----------------解决方案--------------------------------------------------------
前面手误搂打了一个等号,是while(n++=<2),不过解题思路都一样的,我大致听明白了,原来while后面是个分号,真的没注意这个细节,当n=2时,n++=2,然后n变为3++>2,所以跳出循环,然后输出n=4,我没理解错吧~~
----------------解决方案--------------------------------------------------------
没错.依葫芦画瓢就可以了.
----------------解决方案--------------------------------------------------------
那我再问一道题目
以下程序输出结果是:
#include<stdio.h>
main()
{int i,b,k=0;
for(i=1,i<=5;i++)
{b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?
[此贴子已经被作者于2006-9-24 13:56:59编辑过]
----------------解决方案--------------------------------------------------------
没人能帮我吗?
----------------解决方案--------------------------------------------------------
我同意上面的 第三楼的
----------------解决方案--------------------------------------------------------
[QUOTE]下面程序的输出结果是
int n=0;
while(n++=<2); printf("%d",n);
答案是4,为什么?既然是循环结构,那么输出的n的值应该不止一个才对,执行几次循环就应该输出几次n的值.可为什么答案是4?[/QUOTE]
红色的“;”就是问题的关键 WHILE是空循环
----------------解决方案--------------------------------------------------------
int n=0;
while(n++=<2); printf("%d",n);
答案是4,为什么?既然是循环结构,那么输出的n的值应该不止一个才对,执行几次循环就应该输出几次n的值.可为什么答案是4?
红色的“;”就是问题的关键 WHILE是空循环
那前辈能不能帮我解答下~~
以下程序输出结果是:
#include<stdio.h>
main()
{int i,b,k=0;
for(i=1,i<=5;i++)
{b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?
----------------解决方案--------------------------------------------------------
14 楼的问题是这样的,这是我在纸上写的
i k b
1 1 0
1 2 -1
2 3 -1
3 4 0
3 5 -1
4 6 -1
5 7 0
5 8 -1
最后在做一次就是8,-2 了
----------------解决方案--------------------------------------------------------
那我再问一道题目
以下程序输出结果是:
#include<stdio.h>
main()
{int i,b,k=0;
for(i=1,i<=5;i++)
{b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?
----------------解决方案--------------------------------------------------------