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

来源:4-10 循环结构之三种循环比较

qq_O_oAbnero_O_0

2018-11-02 08:58

#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;

}


写回答 关注

2回答

  • 萌混过关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

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

    qq_O_o...

    50啊啊

    2018-11-04 21:51:47

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题