问答详情
源自:4-10 循环结构之三种循环比较

为什么我这种得出的结果是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;

}


提问者:qq_O_oAbnero_O_0 2018-11-02 08:58

个回答

  • 萌混过关qaq
    2018-11-14 18:37:04

    提三个小问题

    1. 分析你的程序

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

           i=3时,flag不变

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

           .........

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

    https://img2.mukewang.com/5bebf93d00012a8108410602.jpg

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

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


  • DOOV
    2018-11-02 12:37:04

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