香蕉那个不拿拿 发表于 2023-7-29 22:18:30

xzh莫小痕 发表于 2023-7-29 22:16
大佬,我想问一下,ch的ACSII码由getchar()赋值给的,getchar()是有我输入的字符和字符串提供的,如果假 ...

好比输入一下字符“123aa”
前三个数字(字符形式)可以正常读取
但是读取到aa时
14行的代码判断他不是数字,会退出循环
字母的ASCLL码值有一张图,等会给你发过来

香蕉那个不拿拿 发表于 2023-7-29 22:19:15

本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:21 编辑


ASCLL码对照表

xzh莫小痕 发表于 2023-7-29 22:21:20

香蕉那个不拿拿 发表于 2023-7-29 22:18
好比输入一下字符“123aa”
前三个数字(字符形式)可以正常读取
但是读取到aa时


大佬,你说的退出循环指的是123aa,123继续循环,aa退出循环是吗

香蕉那个不拿拿 发表于 2023-7-29 22:21:58

xzh莫小痕 发表于 2023-7-29 22:21
大佬,你说的退出循环指的是123aa,123继续循环,aa退出循环是吗

是的
sum保存的值也是123

tommyyu 发表于 2023-7-29 22:22:03

xzh莫小痕 发表于 2023-7-29 22:16
大佬,我想问一下,ch的ACSII码由getchar()赋值给的,getchar()是有我输入的字符和字符串提供的,如果假 ...

1. 部分字符在运算的时候可以转化成ASCII码,和getchar没有关系
2. 字符串转化不了,字符才可以
3. ascii对照表 -> http://c.biancheng.net/c/ascii/

香蕉那个不拿拿 发表于 2023-7-29 22:23:06

123的时候正常遍历
当遍历到aa时
检测到不符合要求
退出循环

香蕉那个不拿拿 发表于 2023-7-29 22:24:06

这是因为a这一些字符他的ASCLL值不在0-9之间,也就不是数字

香蕉那个不拿拿 发表于 2023-7-29 22:26:39

本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:42 编辑

0-9数字的ASCLL码值是连在一块的即为48 - 57

tommyyu 发表于 2023-7-29 22:33:24

香蕉那个不拿拿 发表于 2023-7-29 22:26
0-9数字的ASCLL码值是连在一块的即为80 - 89

《80~89》

xzh莫小痕 发表于 2023-7-29 22:33:27

香蕉那个不拿拿 发表于 2023-7-29 22:26
0-9数字的ASCLL码值是连在一块的即为80 - 89

大佬,退出循环我的理解就是计算机直接将不符合要求的直接舍弃

香蕉那个不拿拿 发表于 2023-7-29 22:43:16

emm,退出循环就是不再运行循环内的代码块
页: 1 [2]
查看完整版本: 帮帮忙,谢谢啦