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

关于for的一个问题(循环结构之三种循环比较)

 //使用for循环
    for(i=1;i<=100;i++)
    {
        i*=flag;
        sum+=i;
        flag=flag*(-1);
    }  
    printf("sum=%d\n",sum);

不明白这样为什么是错的,实现1-2+3-4+5.......-100的和麻烦谁有空帮看下,谢了

正在回答

1 回答

因为你的i在修改正负值,导致循环出现问题,应该用一个额外的变量保存i值进行正负值转换。

int flag = 1, sum = 0, t = 0;

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

    {

         t = i;

        t*=flag;

        sum+=t;

        flag=flag*(-1);

    }


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

Scream 提问者

秒懂
2015-10-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于for的一个问题(循环结构之三种循环比较)

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号