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

while和do-while循环体中的i++写在sum前面,那么在计算sum的时候i的值是1,为什么?i++后面有分号了呀,不是表示一个语句吗。不应该是i已经加了一个1吗?

#include <stdio.h>

int main()

{

    /* 小伙伴们:

           选择你们认为最合理的循环结构完成功能吧 */

    int sum = 0;  //定义计算结果变量sum

    int i = 1;    //定义循环数字变量i

    int flag = 1; //定义符号状态变量flag

    

    //使用while循环

    while(i<=100)

    {    

   i++; 

sum==sum+i*flag; 

        flag *= -1;

    }

    printf("sum=%d\n",sum); 

    

    return 0;    

}


正在回答

2 回答

sum==sum+i*flag是判断左右是否相等,去掉个=才是加
应该把这段放在i++前


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

首先你sum==sum+i*flag; 的时候用两个等号是比较,赋值是一个等号,其次i++,和++i,如果是sum=sum+(i++)那就是sum先加i,然后i在递增,如果是i++,sum=sum+i的话,i已经递增了,所以是从2开始,如果不是在一个运算里用到i++,和++i,而是在他们后面用的话都是已经递增了一个,除非像上面sum=sum+(i++)一样,这个就是先运算在递增。

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

举报

0/150
提交
取消

while和do-while循环体中的i++写在sum前面,那么在计算sum的时候i的值是1,为什么?i++后面有分号了呀,不是表示一个语句吗。不应该是i已经加了一个1吗?

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