啊哈磊_编程从这里起步

标题: 【第三章第4节】动手试一试 题解 [打印本页]

作者: rosynirvana    时间: 2014-4-21 16:07
标题: 【第三章第4节】动手试一试 题解
  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. }
复制代码

作者: 191514338    时间: 2014-4-29 01:55
请问 if(a>=1 && a<=9)   中的两个&&什么意思
作者: rosynirvana    时间: 2014-4-29 02:30
191514338 发表于 2014-4-29 01:55
请问 if(a>=1 && a

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

第三章第6节讲的东西

别怪我用这个,因为显而易见的做法要么用嵌套,要么用&&
作者: 191514338    时间: 2014-4-29 14:23
谢谢-  还没看到那里
作者: 小宝嗷嗷    时间: 2014-7-9 02:07
本帖最后由 小宝嗷嗷 于 2014-7-9 02:14 编辑

{:soso_e100:}

作者: wbb325    时间: 2014-9-26 11:29
想问下,为什么不能用 if(0<a<10)?
作者: rosynirvana    时间: 2014-9-26 12:00
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)是永真的
作者: secret    时间: 2014-12-18 00:36
为什么我只用一个& 也可以的呢?(if(a>=1 & a<=9))
作者: rosynirvana    时间: 2014-12-18 01:28
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

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

在这里用&是个语义上的错误,按照小学应用题的标准来看,是不能算正确的

作者: secret    时间: 2014-12-20 11:30
rosynirvana 发表于 2014-12-18 01:28
首先,&的语义是位与,对于二进制表示的每个位上面进行逻辑与操作,例如
char a, b;
a = 1, b = 0;

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

第三章第6节讲的东西

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

请找作者去说
作者: gongijn9Q    时间: 2015-3-18 12:40
标题: 火前留名
火前留名,看那种网站用什么浏览器?听说用UC看那类网站不会显示广告?!
作者: 斗~英雄    时间: 2018-8-3 22:13
#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;
}
作者: admin123    时间: 2018-12-1 14:44
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;
}




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2