为了账号安全,请及时绑定邮箱和手机立即绑定

为啥while循环条件是i<100,而不是i<99 如果是i<100那么当i等于99的时候,99<100,还执行一次i++,那么此时执行完i++语句,sum=sum+i不就吧100也加进去了。然后现在i的值是100,根据i<100不成立,所以退出循环。打印语句100以内的所有整数之和不就错了。

有没有大神解答一下,急急急!!!!!!!!! 有没有大神解答一下,急急急!!!!!!!!! 

#include

int main ()

 {    

int i=0;  

  int sum=0;    

while(i<100)  

  {   

 i++;  

  sum=sum+i;  

  }  

  printf("100以内所有的整数之和为:%d\n",sum);    

return 0;

 }

正在回答

5 回答

i++放sum=i+sum下面就是用i<100

0 回复 有任何疑惑可以回复我~

区别:你的 i=0; 你的 i++放在sum=sum+i的前面 先计算i++的值再即i=1,再放到sum里

          题目 i=1; 题目 i++放在sum=sum+i的后面 先计算sum的值即sum=1;再计算i++,即i=2;

你的这个问题计算i++放在求和前面和后面的问题,

        你的 i=99; 先计算i++,即i=100;再计算sum=sum+i就可以得到100以内的和了.即while(i<100)

        题目i=99;先计算sum=sum+i; 再计算i++,即i现在才等于100;所以要再循环一次才得到100以内得和,所以i要到i=100;while(i<=100)

2 回复 有任何疑惑可以回复我~

原题给的和是5050那就是要从0加到100,若你想只加到99你可以把i++;放到sum+=i;下面或如你所愿的改条件i<99

0 回复 有任何疑惑可以回复我~
  • 大侠,现在i是99进入循环+1变100,在加到sum里不刚好是加到100了吗,那不就多加了一个100吗?题目不是让求100以内的整数和,我就是这个点有点混乱。

0 回复 有任何疑惑可以回复我~

没看懂你哪里有问题,现在i是99进入循环+1变100,在加到sum里不刚好是加到100了吗,之后不再进入循环输出结果没问题啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥while循环条件是i<100,而不是i<99 如果是i<100那么当i等于99的时候,99<100,还执行一次i++,那么此时执行完i++语句,sum=sum+i不就吧100也加进去了。然后现在i的值是100,根据i<100不成立,所以退出循环。打印语句100以内的所有整数之和不就错了。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信