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

循环代码问题求解

使用循环计算1-2+3-4+5-6+…-100的值?

在编辑器中给出了三种循环体结构的部分代码,请选择合适的循环结构补全代码实现此功能。

int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
    int flag = 1; //定义符号状态变量flag
   
    //使用while循环
    while(i<=100)
    {
      
        sum+=i*flag;
        i++;  //这里我觉得顺序是这样的,i++在第二行,可是答案是i++在第一行
        flag*=-1;
    }

提问者:慕雪2348573 2017-04-20 20:02

个回答

  • qq_溪雨映山谣_0
    2017-04-20 23:32:39

    i++在第一行

    http://img.mukewang.com/58f8c93e0001a5c506170328.jpg

    打印i

    http://img.mukewang.com/58f8c8700001490b06870177.jpg

    打印sum

    http://img.mukewang.com/58f8d1810001af3306920184.jpg

    i++在第二行

    http://img.mukewang.com/58f8cd940001495107080332.jpg

    打印i

    http://img.mukewang.com/58f8cde60001f48207090159.jpg

    打印sum

    http://img.mukewang.com/58f8d243000123a206730174.jpg

    由上知,i++的位置对循环一次后i的取值无影响(理论亦是),i++在第二行的运行结果按顺序计算,逻辑上比较明了。i++在第一行也是可以的,只是。。。。估计是循环里只要程序存在,顺序影响不大。。

    个人比较倾向于先改变循环变量的值,先进行i++;

    http://img.mukewang.com/58f8d47000011af006070320.jpg

    这个是按顺序计算的。






  • Nothing_at_all
    2017-04-20 21:41:31

    //怎么说,是答案错了,学编程学的是解决问题的方法,不需要一个个对上
    //慕课网的一些设定只是让我们规范代码风格
    //在这真的是答案错了
    //加油