不能被3整除的数应该是i%3!=0 怎么会是i%3=0 这不是刚好相反
我明白你说的意思,因为这里用到了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;
}
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上。
题目没有错,自己想一下,大家都是新手
#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;
}
循环是要满足条件才能循环,您说是不是整除的循环,不整除的跳出?