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

老师,为什么我的SUM输不出呢?什么结果都没有

#include <stdio.h>

int main()

{

    /* 小伙伴们:

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

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

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

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

    

    //使用while循环

    while(i<=100)

    {   sum=sum+i;

        i++;

        flag=-flag;

        i=i*flag;

        

        

    }

    

    i = 1;  //重新初始化变量i

    

    //do-while循环

    do{ sum=sum+i;

        i++;

        flag=-flag;

        i=i*flag;

    }while(i<=100);

    

    i = 1;  //重新初始化变量i

    

    //使用for循环

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

    {

        sum=sum+i;

        i++;

        flag=-flag;

        i=i*flag;

    }  

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

    

    return 0;    

}


正在回答

2 回答

while(i<=100){   
    sum=sum+i;
    i++;
    flag=-flag;
    i=i*flag;
}
这里死循环


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

紫珏 提问者

谢谢,但我还有点不懂,虽然i会等于-100,但是i=101时也会跳出循环啊,还有可以写成while(i==-100)吗?
2015-12-24 回复 有任何疑惑可以回复我~
#2

Jason333 回复 紫珏 提问者

第一次循环 i = -2, flag = -1 第二次
2015-12-24 回复 有任何疑惑可以回复我~
#3

Jason333 回复 Jason333

第一次 i = -2, flag = -1 第二次 -1, 1 第三次 0 , -1 第四次 1, 1 然后第五次又是 -2, -1 跟第一次一样了,从头到尾 i 只是取了 -2, -1 ,0, 1而已
2015-12-24 回复 有任何疑惑可以回复我~
#4

Jason333 回复 Jason333

你可以在加个临时变量 temp = i*flag 来记录,要始终保持 i++
2015-12-24 回复 有任何疑惑可以回复我~
查看1条回复

flag=-1*flag

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

举报

0/150
提交
取消

老师,为什么我的SUM输不出呢?什么结果都没有

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