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

4-10我不想用flag,这种方法为啥编译不出来,能否帮我看看哪里出错了?

4-10我不想用flag,这种方法为啥编译不出来,能否帮我看看哪里出错了?

C
是慕粉啊 2017-10-04 10:10:36
#include <stdio.h>int main(){     int i,sum;     for(i=1,sum=0;i<=100;i++)     {         if(i%2=0)         {             i*=-1;         }         sum+=i;         printf("sum=%d\n",sum);     }     return 0;}
查看完整描述

2 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

 if(i%2=0)--> if(i%2==0)

程序有BUG,这里循环是个死循环。

#include <stdio.h>
int main()
{
    int i,sum;
    for(i=1,sum=0;i<=100;i++)
    {
		int temp=i;
		if(i%2==0)
		{
			temp=i*-1;
		}  
        sum+=temp;
        
    }
	printf("sum=%d\n",sum);
    return 0;
}


查看完整回答
2 反对 回复 2017-10-04
?
是慕粉啊

TA贡献3条经验 获得超0个赞

请问,我刚刚修改了一下,程序里面的bug,在哪里,我不知道怎么改,的确是一个死循环?

查看完整回答
反对 回复 2017-10-04
  • 望远
    望远
    if(i%2==0) { i*=-1; } 问题出在这,当i==2时,if成立,i被修改成了-2,循环+1,变成-1 0 1 2(开始重复)构成一个死循环
  • 是慕粉啊
    是慕粉啊
    好的,谢谢,是不是只有在printf后面再加一个if语句才行,还是还有别的修改方法?
  • 2 回答
  • 0 关注
  • 1607 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信