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

运行结果是sum=0,哪里出错了?

 //使用for循环

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

    {   

        if(i%2!=0)

        {

            flag=-flag;

        }

        sum==sum+flag*i;

    }  

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

    

    return 0;    

}


正在回答

2 回答

 if(i%2!=0)

        {

           sum=sum+flag*i;

           flag=-flag;

        }

换一下位置




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

吃了月亮的猫

还有不要用==
2018-10-26 回复 有任何疑惑可以回复我~

不要用==,要用=,你试一下。而且,当i为1时,为正号,此时,flag为1,而你的相反,应该把!去掉

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

甜菊 提问者

//使用for循环 for(i=1;i<=100;i++) { if(i%2==0) { flag=-flag; } sum=sum+i*flag; } printf("sum=%d\n",sum); 还是等于0啊怎么办
2018-10-24 回复 有任何疑惑可以回复我~
#2

慕田峪8151806 回复 甜菊 提问者

你看看你写的意思哈,就是每当i为双数时,flag变换一次符号,意思是初始flag为+,到了2就变成-,等到下一次双数,即4的时候又变换成+了,与它本来的意思相违背。应该是每相加一次变换一次符号,这样能懂吗?
2018-10-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

运行结果是sum=0,哪里出错了?

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