问答详情
源自:4-6 循环结构之while循环

我的条件是i<100为什么是这样

http://img2.mukewang.com/5fbe5cfc0001139e13050725.jpg虽然答案是正确的但是过程没有对,哪里出问题了呢?

提问者:色空荣落处 2020-11-25 21:33

个回答

  • 维德
    2020-11-28 00:44:26
    已采纳

    #include <stdio.h>
    int main()
    
    {
        int i = 1, sum = 0;
        while ( i<=100 )
        {
            if (i % 2 == 0)      //我看你的if条件是求100以内2的倍数的所有数之和,所以你程序里面表述有问题
            {
                sum = sum + i ;        //求和公式最好放外面,看着清爽
                printf("%d是2的倍数,目前和为%d\n", i,sum);        //你要输出的变量都给你考虑到了
            }
            else
            {
                goto step;       //见注释1
            }
            step:i++;
        }
        printf("100以内数的和为:%d\n", sum);
        return 0;
    }
     /* 注释1: else是用来剔除非2倍数的数,不能简单的用相反的公式套上去,
     你如果是要求奇数和的话应该另外设定变量,
     因为你使用的是if-else语句,本着不改动你程序基本思想的情况下给你加入了另外的跳出语句goto */