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

请问我这个问题在哪里?

#include <stdio.h>

int main()

{

    /* 小伙伴们:

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

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

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

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

    while(i<=100)

    {

        i*=flag;

        sum+=i;

        i++;

        flag=-flag;

    }

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

    

    return 0;    

}

正在回答

3 回答

i*=flag;

        sum+=i;

        i++;

        flag=-flag;

   这里执行第一行的时候i可能会变成负数   然后再自加 就不对了 出错 会死循环    改成sum+=i*flag

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

奇怪的阿怪 提问者

为啥负数自加会死循环?
2017-07-21 回复 有任何疑惑可以回复我~
#2

慕少824372 回复 奇怪的阿怪 提问者

因为我们循环是使i以1 2 3 4 5 。。。这样变化 你变成1 -1 0 。。这样肯定不行的 (我也是菜鸟 不知道怎么表达)
2017-07-21 回复 有任何疑惑可以回复我~
#3

奇怪的阿怪 提问者 回复 慕少824372

i永远小于100了,谢谢你。
2017-07-21 回复 有任何疑惑可以回复我~
#4

慕少824372 回复 奇怪的阿怪 提问者

不用谢 我也是正在学
2017-07-21 回复 有任何疑惑可以回复我~
查看1条回复

我知道了

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

似乎没什么问题

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

举报

0/150
提交
取消

请问我这个问题在哪里?

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