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

为什么我这种得出的结果是2550

#include<stdio.h>

int main()

{

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

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

{

if(i%2!=0)

{

sum+=i;

}

else if(i%2==0)

{

flag=-flag;

sum=sum+i*flag;

}

}

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

return 0;

}


正在回答

3 回答

提三个小问题

  1. 分析你的程序

    i=2时,进入else语句,flag=-1,

       i=3时,flag不变

       i=4时,又进入else语句,flag=1,

       .........

       也就是你应该把flag=-flag提到条件语句之外或者直接把flag赋值为-1,每次乘一下不用再变号

https://img1.sycdn.imooc.com//5bebf93d00012a8108410602.jpg

2.注意一下输出格式为“sum=-50”,你的输出语句也要改一下

3.for语句中嵌套的条件语句第二个if可以不要,我也是刚学C语言,觉得你的第二个if没有对应的else不完美QAQ


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

这题是让你求的答案是多少

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

慕娘7216434

-50
2018-11-02 回复 有任何疑惑可以回复我~
#2

qq_O_oAbnero_O_0 提问者

50啊啊
2018-11-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这种得出的结果是2550

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