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

来源:4-10 循环结构之三种循环比较

残秋墨月

2019-03-27 20:59

#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回答

  • qq_慕桂英9099735
    2019-03-29 16:56:41
    sum==sum+i*flag是判断左右是否相等,去掉个=才是加
    应该把这段放在i++前


  • qq_慕码人0317124
    2019-03-27 23:39:22

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926286 学习 · 20799 问题

查看课程

相似问题