djdj 发表于 2017-4-18 23:50:41

为什么结果是这样,怎么不是按照我编译的输出来

machimilk 发表于 2017-4-19 00:32:56

没错,你输入的5输出结果正常,你查一下ascii表就明白了

djdj 发表于 2017-4-19 18:30:33

machimilk 发表于 2017-4-19 00:32
没错,你输入的5输出结果正常,你查一下ascii表就明白了

可是我是输入数字5啊,5<32,不是应该输出第一行的吗

djdj 发表于 2017-4-19 18:37:34

machimilk 发表于 2017-4-19 00:32
没错,你输入的5输出结果正常,你查一下ascii表就明白了

大家看看为什么会这样,输入与输入的不一致

表里如意 发表于 2017-4-19 22:57:44

输入5
第一个比的是5的ASCII码

machimilk 发表于 2017-4-19 23:30:55

djdj 发表于 2017-4-19 18:37
大家看看为什么会这样,输入与输入的不一致

5的ascii码不是5,你输入的5在内存中实际不是5,是按ascii码表来的

machimilk 发表于 2017-4-19 23:31:27

djdj 发表于 2017-4-19 18:37
大家看看为什么会这样,输入与输入的不一致

5的ascii码不是5,你输入的5在内存中实际不是5,是按ascii码表来的

djdj 发表于 2017-4-21 10:20:32

machimilk 发表于 2017-4-19 23:31
5的ascii码不是5,你输入的5在内存中实际不是5,是按ascii码表来的

那为什么我输入一百,输出的不是我编译的那个,你帮我说的具体一点

djdj 发表于 2017-4-21 10:21:05

表里如意 发表于 2017-4-19 22:57
输入5
第一个比的是5的ASCII码

那为什么我输入一百,输出的不是我编译的那个,你帮我说的具体一点

machimilk 发表于 2017-4-21 12:51:24

djdj 发表于 2017-4-21 10:21
那为什么我输入一百,输出的不是我编译的那个,你帮我说的具体一点

你百度一下ascii码表,就知道了,你输入的5其实在内存中是十六进制的35(10进制的53),你的条件是 c>='0' && c<='9', 注意是'0' '9' 而不是 09带单引号的按ascii的值算,而你说的100,其实是按1算的,因为你用的getchar只能截取1个字符,100只取第一个字符1 后面的00不取

djdj 发表于 2017-4-22 23:10:09

machimilk 发表于 2017-4-21 12:51
你百度一下ascii码表,就知道了,你输入的5其实在内存中是十六进制的35(10进制的53),你的条件是 c>='0 ...

懂了、
页: [1]
查看完整版本: 为什么结果是这样,怎么不是按照我编译的输出来