问答详情
源自:4-15 结束语句之continue语句

题目是不是出错了

不能被3整除的数应该是i%3!=0  怎么会是i%3=0 这不是刚好相反

提问者:慕码人9589409 2019-07-25 14:41

个回答

  • 坚持下去灬
    2019-08-22 14:22:59
    已采纳

    我明白你说的意思,因为这里用到了continue, 是把能整除的输已经剔除掉了。剩下的就是不能整除的

    日过用你那样的想法脚本就应该是这样:  你可以看下,这样可以达到同样的效果,因为这个课时是学的continue,所以是这样写的。

    #include <stdio.h>

    int main()

    {

        int i, sum;

        for(i=1, sum=0; i<=20; i++)

        {

            if(     i%3!=0    )    //能被3整除这个条件如何写呢?

            {

                 sum+=i;

            }                  

        }

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

        return 0;    

    }


  • weixin_慕盖茨2597418
    2022-02-06 17:38:54

    continue的意思是先跳出,就是i%3==0的时候停止,不进行sum += i,然后下一次再继续。

    比如i=2时,2%3==0为假,不执行continue,执行sum+=i,现在sum=3,这次循环结束,下一次循环,这时i=3,3%3==0为真,就会执行continue跳出,不会执行sum+=i,因此能被3整除的数字就不会被包含进求和运算里,i=4时,(这点就是和break不同的地方,每次break之后都会重新赋值,比如上个练习for(n=2;m>n;n++){if(m%n==0){ break;}}意味着只要满足m%n==0,发生break之后,下一次开始这个for循环的时候n都会重新赋值为初始值2,但是continue的话就会接着上次运算剩下的值继续进行,不会重新赋值),4%3==0为假,不执行continue,sum=7.

    所以这里并不是为了识别不能被三整除的数,而是要识别能被三整除的数并及时跳出防止它们加到sum上。

  • 慕码人31620374
    2019-08-02 00:44:57

    题目没有错,自己想一下,大家都是新手
    #include<stdio.h>
    int main()
    {
    int i,sum;
    for(i=1,sum=0;i<=20;i++)
    {
    if(i%3==0)
    {
    continue;
    }
    sum += i;
    }
    printf(“sum=%d\n”, sum)
    return 0;
    }

  • 小小疾飞
    2019-07-25 14:48:44

    循环是要满足条件才能循环,您说是不是整除的循环,不整除的跳出?