当前位置: 代码迷 >> C语言 >> 关于while
  详细解决方案

关于while

热度:134   发布时间:2006-11-07 15:10:12.0
关于while

这个程序是那个叫什么连续+的
#include <stdio.h>

void main()
{
int a;
int b=0;
printf("\n请输入一个数:");
scanf("%d",&a);
if(a>0){
while(a>0){
b=b+a;
a=a-1;
}
printf("\n 和为:%d\n",b);
}else
printf("无效\n");
}

其中while那里我有点晕,请高手指点一二!麻烦说的细一点好么,谢谢!

搜索更多相关的解决方案: printf  void  else  main  include  

----------------解决方案--------------------------------------------------------
输入1的话 while里面运算的方式是b=0+1,a=1-1,结果b=1,a=0 然后判断while(a>0)不符合条件 ,跳出循环,最后输出结果是1
输入2的话 while里面运算的方式是b=0+2,a=2-1,结果b=2,a=1 然后判断while(a>0)符合条件 ,执行下一次循环运算的方式是b=2+1,a=1-1,结果b=3,a=0 ,然后判断while(a>0)不符合条件,最后输出结果是3
----------------解决方案--------------------------------------------------------
while(a>0){
b=b+a;
a=a-1;
}
循环要结束,一定使得a>0不成立,当然在这里使得不成立的第一个数是a==0.
这个程序就是说,a被减了多少次就会被加多少次,同时b也在加.
假设:a=3,b=3;
1,a=3>0--->b=3+3=6;a=a-1=3-1=2
2.a=2>0--->b=6+2=8;a=a-1=2-1=1;
3.a=1>0--->b=8+1=9:a=a-1=1-1=0
4.a=0==0跳出循环,结束,输出9

----------------解决方案--------------------------------------------------------
while()里面,是条件判断,为真执行{}话句,否则不执行{}里话句。
----------------解决方案--------------------------------------------------------

那我的题循环那里就是:b=b+a;a=a-1;循环开始就是: b=4,a=4-1然后3>0执行b=4+(4-1),a=3-1,然后b=(4+3)+2,a=2-1再然后b=(7+2)+1,a=1-1,然后a>0就不成立了,我这想法对么?


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-11-7 15:47:44的发言:
while(a>0){
b=b+a;
a=a-1;
}
首先输入a值,做while循环,直到a<=0结束
假设:a输入3
1,a=3>0--->b=0+3=3;a=a-1=3-1=2
2.a=2>0--->b=3+2=5;a=a-1=2-1=1;
3.a=1>0--->b=5+1=6:a=a-1=1-1=0
4.a=0==0跳出循环,结束,输出b=6 <------------------程序求的是1加到a的和~ =。=!


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

  相关解决方案