搜索
查看: 1835|回复: 14

【第三章第4节】动手试一试 题解

[复制链接]
发表于 2014-4-21 16:07:34 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.         int a;
  6.         scanf("%d",&a);
  7.         if(a>=1 && a<=9)
  8.                 printf("yes");
  9.         else
  10.                 printf("no");

  11.         system("pause");
  12.         return 0;
  13. }
复制代码
发表于 2014-4-29 01:55:36 | 显示全部楼层
请问 if(a>=1 && a<=9)   中的两个&&什么意思
 楼主| 发表于 2014-4-29 02:30:15 | 显示全部楼层

逻辑与,表示“并且” ,前面一个条件和后面一个条件都要成立

第三章第6节讲的东西

别怪我用这个,因为显而易见的做法要么用嵌套,要么用&&
发表于 2014-4-29 14:23:49 | 显示全部楼层
谢谢-  还没看到那里
发表于 2014-7-9 02:07:34 | 显示全部楼层
本帖最后由 小宝嗷嗷 于 2014-7-9 02:14 编辑

{:soso_e100:}
发表于 2014-9-26 11:29:01 | 显示全部楼层
想问下,为什么不能用 if(0<a<10)?
 楼主| 发表于 2014-9-26 12:00:26 | 显示全部楼层
wbb325 发表于 2014-9-26 11:29
想问下,为什么不能用 if(0

0<a<10和数学上的含义不同

0 < a < 10被理解成 (0 < a) < 10
先对0 < a 这个表达式求值,然后转化成数字,真假分别转换成1和0
1 < 10 而且 0 < 10
所以if(0 < a < 10)是永真的
发表于 2014-12-18 00:36:00 | 显示全部楼层
为什么我只用一个& 也可以的呢?(if(a>=1 & a<=9))
 楼主| 发表于 2014-12-18 01:28:22 | 显示全部楼层
secret 发表于 2014-12-18 00:36
为什么我只用一个& 也可以的呢?(if(a>=1 & a

首先,&的语义是位与,对于二进制表示的每个位上面进行逻辑与操作,例如
char a, b;
a = 1, b = 0;
a & b首先要写出二进制表示
a 00000001
b 00000000
然后每个位上进行逻辑与
得到的结果就是
  00000000

然后 a >= 1和a <= 9两个式子的值只能是1或0,穷举4种情况
左边 右边 & &&
0 1 0 0
1 0 0 0
1 1 1 1
0 0 0 0

所以在这里&和&&得出的值相等

在这里用&是个语义上的错误,按照小学应用题的标准来看,是不能算正确的
发表于 2014-12-20 11:30:51 | 显示全部楼层
rosynirvana 发表于 2014-12-18 01:28
首先,&的语义是位与,对于二进制表示的每个位上面进行逻辑与操作,例如
char a, b;
a = 1, b = 0;

万分感谢了
发表于 2014-12-20 23:50:34 | 显示全部楼层
本帖最后由 廖子琦 于 2014-12-20 23:53 编辑
rosynirvana 发表于 2014-4-29 02:30
逻辑与,表示“并且” ,前面一个条件和后面一个条件都要成立

第三章第6节讲的东西

为什么第六节出的知识点会提前出在第四节题目那,对我这种从头到尾看书学的那不是坑人么,好比不会走就要你跑,费很大劲才找到这里,要不然都不知道还有这个概念 &&
 楼主| 发表于 2014-12-21 02:53:08 | 显示全部楼层
廖子琦 发表于 2014-12-20 23:50
为什么第六节出的知识点会提前出在第四节题目那,对我这种从头到尾看书学的那不是坑人么,好比不会走就要 ...

请找作者去说
发表于 2015-3-18 12:40:28 | 显示全部楼层

火前留名

火前留名,看那种网站用什么浏览器?听说用UC看那类网站不会显示广告?!
发表于 2018-8-3 22:13:28 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        
    int a;
    scanf("%d",&a);
        if ((a-10)<0)
                printf("yes");
    if ((a-10)>=0)
                printf("no");        
        Sleep(1000000);
        return 0;
}
发表于 2018-12-1 14:44:03 | 显示全部楼层
include <stdio.h>
#include <stdlib.h>
int main()
{
        int a ;
    scanf("%d",&a);
    if(a%10>1)
    {
                printf("yes");
    }
    else
    {
                printf("no");
    }
        system("pause");
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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