当前位置: 代码迷 >> C语言 >> 刚学的菜鸟问题想不通!
  详细解决方案

刚学的菜鸟问题想不通!

热度:294   发布时间:2006-09-30 00:08:18.0
刚学的菜鸟问题想不通!
#include <stdio.h>
void main()
{
int a=1,b=5;
do
{
b*=a;
++a;
--b;
}
while(b<0);
printf("%d\n",b);
}
/*b输出是4,请问为什么会是4,这是一道选择题我不理解其中的意思!望高手解释一下,因为我刚学,有点想不通!麻烦高手写得详细一点!!谢谢了!!*/
----------------解决方案--------------------------------------------------------

沙发。


----------------解决方案--------------------------------------------------------

5-1 你说等于几????

while(b<0);真值判断为假,停止循环,打印b的值为4。


----------------解决方案--------------------------------------------------------

为什么是5-1??
请高手一步步说得详细点!谢谢了!


----------------解决方案--------------------------------------------------------
++a和a++
--b和b--
有什么区别????
----------------解决方案--------------------------------------------------------
++在前,变量先执行++运算,再进行其他运算;++在后,则先进行完其他运算后,再进行++运算。需要说明的是,在复杂表达式中这样的结合具有一定技巧,也容易引起错误,建议初学者少用这样的表达式。
----------------解决方案--------------------------------------------------------
以下是引用lansite2006在2006-9-30 0:08:18的发言:
#include <stdio.h>
void main()
{
int a=1,b=5;
do
{
b*=a; //b=b*a;
++a; //a=a+1;
--b; //b=b-1;
}
while(b<0);
printf("%d\n",b);
}
/*b输出是4,请问为什么会是4,这是一道选择题我不理解其中的意思!望高手解释一下,因为我刚学,有点想不通!麻烦高手写得详细一点!!谢谢了!!*/

循环第一次时,b=b*a=5*1=5;++a--->a=2; --b--->b=5-1=4;此时判断循环结束条件为假结束循环,所以输出为4.


----------------解决方案--------------------------------------------------------
这个程序可以写成
#include<stdio.h>
void main()
{
int b=5;
--b;
printf("%d\n",b);
}
其余没有用途。
----------------解决方案--------------------------------------------------------
  相关解决方案