搜索
查看: 870|回复: 2
打印 上一主题 下一主题

有个问题,不解啊,求救

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-13 16:39:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a;
    a=1;
    while (a<=100)                       
    {
                if(a%3!=0)                  
                        printf("%d  ",a);
            a=a+1;
    }
        system("pause");
        return 0;
}


注意看这句:if(a%3!=0)          
这句是判断a是不是3的倍数,如果成立才执行printf("%d  ",a);
但是书上说这段代码的意思是 如果每次遇到3的倍数就不输出,但是if成立输出的不就是3的倍数吗?
还有,判断一个数是否为3的倍数或者末尾含3的树为什么是  if (i%3==0 || i%10==3) 呢?比如 13%3 这两个都不成立啊?为什么呢?






最佳答案

查看完整内容

%运算符:用法:设有两个int型(只能是int型)数据a和b 则表达式 的值为a/b的余数[/backcolor]。 在理解了%的用法后,易知: 这句意为: 若 a除3的余数 不等于 0 则执行if后语句 由于3的倍数除3的余数都为0(如6/3=2……0,即6%3=0、9/3=3……0,即9%3=0),因此在a为3的倍数时if后的代码不执行,即不执行 一句。 同理,13%10的值为3(13/10=1……3)所以i%10==3成立 一句可理解为: 若 i除3的余数 等 ...
沙发
发表于 2014-1-13 16:39:48 | 只看该作者
本帖最后由 981013 于 2014-1-14 13:50 编辑

%运算符:用法:设有两个int型(只能是int型)数据a和b
则表达式
  1. a%b
复制代码
的值为a/b的余数

在理解了%的用法后,易知:
  1. if(a%3!=0)
复制代码
这句意为:
       若 a除3的余数 不等于 0  则执行if后语句
由于3的倍数除3的余数都为0(如6/3=2……0,即6%3=0、9/3=3……0,即9%3=0),因此在a为3的倍数时if后的代码不执行,即不执行
  1. printf("%d ",a);
复制代码
一句。
同理,13%10的值为3(13/10=1……3)所以i%10==3成立

  1. if (i%3==0 || i%10==3)
复制代码
一句可理解为:
        若 i除3的余数 等于 0(即i为3的倍数) 或者 i除10的余数 等于 0(即i末位是3) 则执行if后语句


因此可以通过。




板凳
发表于 2014-1-13 19:41:06 | 只看该作者
if语句成立时输出的不是3的倍数,你弄反了
!=是不等于的意思
13%10==3啊?
你看走眼了吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表