【急】一个关于C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 06:43:52
main()
{ int i,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3)) s+=i;
printf("%d\n",s);
}
改程序的输出结果是什么?这里的!(i%5)表示什么意思?

这个符号%是求余的意思,i%5就是i除以5后的余数。如果i是5的倍数,则i除以5余数是0(小学知识),即(i%5)的值是0。而这个感叹号!是取反,加在(i%5)前面组成!(i%5),那么括号内的值就取反了,也就是说当i除以5余数是0时,!(i%5)==1。那么同理i除以3余数是0时可以得到!(i%3)==1。&&这个符号是逻辑连接符,表示逻辑与,当此符号两边都是ture时!(i%5)&&!(i%3)才ture ,if的条件也就成立,则语句if(!(i%5)&&!(i%3)) s+=i;表示当i能同时被5和3整除时就将i的值加到s中。所以,这个程序的意思就是将1到49间的整数中能同时被3和5整除的数的和输出。

结果是什么自己看答案吧哈哈!

“%”是求余运算,结果是余数,比如,5%3=2。10%5=0。如果分子比分母小,那得到的值一定为0。比如,3%5=0,5%10=0。
“!”,读做“非”,一个逻辑运算。“真”的值加了“!”,就变“假”,“假”的值加了“!”,值就成“真”。运算法则类似“负号-”。

假设i=10,i%5=0,在!运算就是1
再假设i=12,i%5=2,在!运算就是0
这里的!运算就是把0变为1,把不是0的变为0
%运算是求余数

改程序是求50以内既不能被5整除又不能被3整除的所有数的和,结果是91 。!表示非运算,i%5是对i求余运算,!(i%5)结合表示i不能被5整除。

就是除了3和5 的倍数的值的和.if里的语句意思是非5的倍数和非3的倍数就执行下面的语句.