xzh莫小痕 发表于 2023-7-29 22:08
各位大佬,我好像没看懂,我以我自己有限的知识,说一下我的理解就是,ch=getchar(),指的就是我输入的字符 ...
ch=getchar(),指是接受一个字符
if(ch>='0'&&ch<='9')指的是如果ch为字符型的0-9,那么就执行第16行
第16行的作用,我局个例子
我输入了1234
第一回:收到'1',num = 0*10+1 = 1
第二回:收到'2',num = 1*10+2 = 12
第三回:收到'2',num = 12*10+3 = 123
第三回:收到'2',num = 123*10+4 = 1234
第16行会将num末尾插入新输入的那个数字!!!
给个最佳答案呗{:10_254:}
ASCII码对照表:
https://pic3.zhimg.com/v2-99d2c2240b51e0dc2772927113111992_b.webp?consumer=ZHI_MENG xzh莫小痕 发表于 2023-7-29 22:16
大佬,我想问一下,ch的ACSII码由getchar()赋值给的,getchar()是有我输入的字符和字符串提供的,如果假 ...
好比输入一下字符“123aa”
前三个数字(字符形式)可以正常读取
但是读取到aa时
14行的代码判断他不是数字,会退出循环
字母的ASCLL码值有一张图,等会给你发过来 本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:21 编辑
ASCLL码对照表 香蕉那个不拿拿 发表于 2023-7-29 22:18
好比输入一下字符“123aa”
前三个数字(字符形式)可以正常读取
但是读取到aa时
大佬,你说的退出循环指的是123aa,123继续循环,aa退出循环是吗 xzh莫小痕 发表于 2023-7-29 22:21
大佬,你说的退出循环指的是123aa,123继续循环,aa退出循环是吗
是的
sum保存的值也是123 xzh莫小痕 发表于 2023-7-29 22:16
大佬,我想问一下,ch的ACSII码由getchar()赋值给的,getchar()是有我输入的字符和字符串提供的,如果假 ...
1. 部分字符在运算的时候可以转化成ASCII码,和getchar没有关系
2. 字符串转化不了,字符才可以
3. ascii对照表 -> http://c.biancheng.net/c/ascii/ 123的时候正常遍历
当遍历到aa时
检测到不符合要求
退出循环 这是因为a这一些字符他的ASCLL值不在0-9之间,也就不是数字 本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:42 编辑
0-9数字的ASCLL码值是连在一块的即为48 - 57 香蕉那个不拿拿 发表于 2023-7-29 22:26
0-9数字的ASCLL码值是连在一块的即为80 - 89
《80~89》 香蕉那个不拿拿 发表于 2023-7-29 22:26
0-9数字的ASCLL码值是连在一块的即为80 - 89
大佬,退出循环我的理解就是计算机直接将不符合要求的直接舍弃 emm,退出循环就是不再运行循环内的代码块
页:
1
[2]