c语言中,if(i%3)的意思

#include<stdio.h>
void main()
{
int i=0,s=0;
do
{
if(i%3){i++;continue;}
i++;
s+=i;
}
while(i<11);
printf("%d\n",s);

}
答案是22,不理解为什么得出这个结果。

i%3是if语句的判断条件,在i等于0的时候执行i++,此时i=1,s+=i,s等于1

因为i<11,所以继续版循环体,i不是3的整数倍的时权候就执行{i++;continue;}

总而言之,在i等于0,3,6,9的时候执行i++;s+=i

也就是s=1+4+7+10,也就是结果说的s=22

扩展资料:

数据类型关键字

short:修饰int,短整型数据,可省略被修饰的int。

long:修饰int,长整型数据,可省略被修饰的int。

long long:修饰int,超长整型数据,可省略被修饰的int。

signed:修饰整型数据,有符号数据类型。

unsigned:修饰整型数据,无符号数据类型。

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-11
  if(i%3)

       等价于

  if (i%3==0)

  用于判断i是否被3整除。

第2个回答  推荐于2017-09-16
i%3是if语句的判断条件,在i等于0的时候执行i++,此时i=1,s+=i,s等于1
因为i<11,所以继续循环体,i不是3的整数倍的时候就执行{i++;continue;}

总而言之,在i等于0,3,6,9的时候执行i++;s+=i
也就是s=1+4+7+10,也就是结果说的s=22本回答被提问者采纳
第3个回答  2011-08-19
if(i%3)的意思是“假如i不能被3整除”。
i%3会有三种结果:0、1、2;if(i%3)相当于if(i%3==1||i%3==2);
C语言中,用非零数表示“真”。追问

那能否帮忙解释一下怎么得出22的。我觉得得数是18.。。。

第4个回答  2011-08-19
利用if判断i除以3的余数是否为零,为零不执行if语句,不为零执行if语句

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网