为了账号安全,请及时绑定邮箱和手机立即绑定

题目是不是出错了

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

正在回答

4 回答

我明白你说的意思,因为这里用到了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;    

}


1 回复 有任何疑惑可以回复我~

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上。

0 回复 有任何疑惑可以回复我~

题目没有错,自己想一下,大家都是新手
#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;
}

2 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

题目是不是出错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信