c语言中,if(i%3)的意思
#include<stdio.h>voidmain(){inti=0,s=0;do{if(i%3){i++;continue;}i++;s+=i;}while(i<11)...
#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,不理解为什么得出这个结果。 展开
void main()
{
int i=0,s=0;
do
{
if(i%3){i++;continue;}
i++;
s+=i;
}
while(i<11);
printf("%d\n",s);
}
答案是22,不理解为什么得出这个结果。 展开
12个回答
展开全部
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:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。
展开全部
if(i%3)
等价于
if (i%3==0)
用于判断i是否被3整除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
因为i<11,所以继续循环体,i不是3的整数倍的时候就执行{i++;continue;}
总而言之,在i等于0,3,6,9的时候执行i++;s+=i
也就是s=1+4+7+10,也就是结果说的s=22
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(i%3)的意思是“假如i不能被3整除”。
i%3会有三种结果:0、1、2;if(i%3)相当于if(i%3==1||i%3==2);
C语言中,用非零数表示“真”。
i%3会有三种结果:0、1、2;if(i%3)相当于if(i%3==1||i%3==2);
C语言中,用非零数表示“真”。
追问
那能否帮忙解释一下怎么得出22的。我觉得得数是18.。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用if判断i除以3的余数是否为零,为零不执行if语句,不为零执行if语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询