我觉得给的答案有问题,大家来看看。

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

念纪

2018-12-24 11:12

#include <stdio.h>

int main()

{

    /* 小伙伴们:

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

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

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

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

    //使用while循环

    while(i<=100)

    {

        i++; 

        sum=sum+i*flag;

        flag=(-1)*flag;  

    }

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

    return 0;    

}

这是给的答案,运行出来的结果确实为-50,但是我就得不对啊.....你们想,第一次执行循环时,执行i++;此时i就等于2了,然后那么接下来的式子就为2-3+4-5+6······+98-99+100(此多项式结果为51),

但是题目求的是1-2+3-4+5-6·······+99-100。

写回答 关注

1回答

  • 念纪
    2018-12-24 11:57:42

    我知道了,虽然执行结果是-50是正确的,但是如果把i++放前面的话,那么执行起来为2-3+4-5....-99+100-101,答案也是-50,有点偏离题意,所以最好是把i++放在循环的后面,也就是循环中while(i<=100)

    {

     sum=sum+i*flag;

            flag=(-1)*flag; 

            i++; 

    }

    这样才“更正确”

    Khaki6

    赞同!!

    2019-01-11 17:05:50

    共 1 条回复 >

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题