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

看不懂 请教大神

https://img1.sycdn.imooc.com//5bcb2258000143c507130289.jpg

sum+=i*flag;

flag*=-1;

是什么意思

正在回答

3 回答

读了一下前三轮循环

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 

 

}


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

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这样循环。

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

qq_慕妹1357881

就是说在i=2之前或者i++ 之前 i=1就已经运算了 是吧
2019-01-25 回复 有任何疑惑可以回复我~

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

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


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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

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

进入课程

看不懂 请教大神

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