while 和do while循环中i++在前不就从2开始了吗?

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

星焱

2016-06-26 20:21

while(i <= 100)

{

    i++;

    sum += i*flag;

    flag *= -1;

}


写回答 关注

3回答

  • 慕盖茨2788539
    2016-07-23 14:36:52

    嗯,我想你想的是对的。的确答案里sum=的那个式子是从2开始计算的。

    按照答案的逻辑来计算的话:sum=2-3+4-5...+100-101=-50 (最后项会变成101而不是100)

    而按照本题的原意,即要把i++放在后面写。结果计算会变成:sum=1-2+3-4...+99-100=-50 

    两者结果是一样的。好巧...

  • weibo_30度角_仰望湛藍天_0
    2016-07-17 22:40:38

    我也觉得i++放前面,sum=的那个式子直接从2开始算的,可是代码按它提示打进去,答案是对的,想不通。可我觉得我i++和++i的区别搞懂了。

    weibo_... 回复慕盖茨278...

    恩,我懂了。所以恰好两者答案是一样的,但是其实运行的过程是有问题的,谢啦~

    2016-07-23 16:34:52

    共 4 条回复 >

  • 星焱
    2016-06-26 20:59:56

    虽然i++的位置不影响最后的结果,但处理过程与题目的式子要一致的话,i++就必须放在后面

    while(i <= 100)

    {

        sum += i*flag;

        flag *= -1;

        i++;

    }


C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题