看不懂 请教大神

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

谦虚的忍

2018-10-20 20:42

https://img2.mukewang.com/5bcb2258000143c507130289.jpg

sum+=i*flag;

flag*=-1;

是什么意思

写回答 关注

3回答

  • 慕粉0247298809
    2018-10-29 18:58:28
    已采纳

    读了一下前三轮循环

    int sum = 0; 

    int i,flag=1;


    i++;  //初始值是1,现在自增后是2

    sum += i*flag; //现在 sum=0 i=2 flag=1 

    //sum = 0+2*1     0+2*1=2   把2赋值给sum

    flag *= -1;//flag在这里变成了-1

    //flag =1*-1


    //开始第二轮循环


     i++;  //上一轮i的值是2,现在自增后是3

    sum += i*flag; //这时sum=2 i=3 flag=-1 

    //sum = 2+3*-1  

    flag *= -1;//flag在这里变成了1

    //flag =-1*-1


    //开始第三轮循环


     i++;  //上一轮i的值是3,现在自增后是4

    sum += i*flag; //这时sum=-1 i=4 flag=1 

    //sum = -1+4*1  

    flag *= -1;//flag在这里变成了-1

    //flag =1*-1


    //这么一直循环到i=100 

     

    }


  • fugace
    2018-11-01 20:33:49

    flag*=-1就是flag=flag*-1,不过不是用在本次sum += i*flag中而是用在下一次的循环中,也就是说是用在i=2时,这个时候sum += i*flag = -2,加上之前的i=1时候sum的值,就变成了1-2+3-4以此类推。flag的值是1,-1,1,-1这样循环。

    qq_慕妹1...

    就是说在i=2之前或者i++ 之前 i=1就已经运算了 是吧

    2019-01-25 19:09:04

    共 1 条回复 >

  • 慕用4175530
    2018-10-20 21:21:10

    sum+=i*flag;的意思是sum=sum+i*flag

    flag*=-1;的意思是flag=flag*(-1)


C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题