谦虚的忍
2018-10-20 20:42
sum+=i*flag;
flag*=-1;
是什么意思
读了一下前三轮循环
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
}
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这样循环。
sum+=i*flag;的意思是sum=sum+i*flag
flag*=-1;的意思是flag=flag*(-1)
C语言入门
926022 学习 · 20793 问题
相似问题