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

为什么使用sum+=i*(2*(i&2)-1)的式子输出结果和预想的不符

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

sum+=i*(2*(i&2)-1)

括号中由i的奇偶得出+1或-1,但从输出结果来看似乎括号里算出来都是1



正在回答

3 回答

#include <stdio.h>

int main()

{

    /* 小伙伴们:

           选择你们认为最合理的循环结构完成功能吧 */

    int sum = 0;  //定义计算结果变量sum

    int i = 1;    //定义循环数字变量i

    int flag = 1; //定义符号状态变量flag

    

    //使用for循环

    for(i=1;i<=100;i++)

    {

        i++;

        flag=-i-1;

        sum+=i+flag;

    }  

    printf("sum=%d\n",sum); 

    

    return 0;    

}


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

OrangePeel 提问者

已经解决了,我误把求余运算符写成了& ????
2018-09-09 回复 有任何疑惑可以回复我~
#2

慕九州5552665 回复 OrangePeel 提问者

呵呵 \(^o^)/~ o(* ̄︶ ̄*)o ^_^
2018-09-09 回复 有任何疑惑可以回复我~

厉害了,想到这种操作法

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

flag呢


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

OrangePeel 提问者

没有用上flag
2018-09-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么使用sum+=i*(2*(i&2)-1)的式子输出结果和预想的不符

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