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

这个sum=sum+flag*i; flag=-flag;原理是什么? 老是搞不懂


    for(i=1;i<=100;i++)
    {
        sum=sum+flag*i;
        flag=-flag;
        i++;
    } 
    printf("sum=%d\n",sum);
   
    return 0;   
}


正在回答

2 回答

你就把flag当做1来运算

需要负数时,把flag乘-1,flag就成了-1,把他与i相乘,i就成了负数

第二次乘-1时,flag就又变为+1

从而实现一正一负

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

这有什么搞不懂,flag=-flag是循环体里的内容代表正负切换。如果flag初值为1则第一次循环为-1,第二次为+1

sum是求和,SUM=0,在第一次循环SUM=0+FLAG*I,改变的始终是flag*i,sum不过是记录他改变过程的总变化


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

举报

0/150
提交
取消

这个sum=sum+flag*i; flag=-flag;原理是什么? 老是搞不懂

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