鱼C论坛

 找回密码
 立即注册
查看: 3167|回复: 31

[已解决]帮帮忙,谢谢啦

[复制链接]
发表于 2023-7-29 21:49:56 | 显示全部楼层
根据ASCLL码,CH这一个变量减去0这个字符,得到的就是CH所代表的数字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 21:51:45 | 显示全部楼层
故而num = num*10 +(ch-‘0’)
就是将CH这一个字符所代表的数字添加到num变量的末尾
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 21:52:43 | 显示全部楼层
本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:00 编辑

故而
这一串代码可以将一串字符中的数字提取出来输出

点评

不,我坚决不同意楼主的看法!: 5.0
不,我坚决不同意楼主的看法!: 5
不,结果是用整形的num接受的,不可能超过整型  发表于 2023-7-29 21:54
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 21:54:16 | 显示全部楼层
其中,do while语句的只要检测到换行,“\n”就会退出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 21:58:37 | 显示全部楼层    本楼为最佳答案   
代码流程如下
输入转换字符
循环{
若该字符ASCLL码在0到9之间
{
      将该字符所代表的数字加到num的末尾
}
若检测到换行
{
       退出循环     
}
}
输出转换完了的num
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:16:13 | 显示全部楼层
好比现在有123这一个字符串
循环一: 16行的num = 10*num +(ch-“0”)即为num = 0 + 1(ch) = 1
循环二      num = 10*num + (ch - “0”) 即为 num = 10 * 1 +2(ch) = 10 + 2 = 12
循环三     num = 10*num + (ch - “0”) 即为 num = 10 * 12 + 3(ch) = 120 + 3 = 123
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +3 收起 理由
xzh莫小痕 + 3 + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:19:15 | 显示全部楼层
本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:21 编辑

40f17c9a1c656e264e8cf18b70e0c852.jpg
ASCLL码对照表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:21:58 | 显示全部楼层
xzh莫小痕 发表于 2023-7-29 22:21
大佬,你说的退出循环指的是123aa,123继续循环,aa退出循环是吗

是的
sum保存的值也是123
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:23:06 | 显示全部楼层
123的时候正常遍历
当遍历到aa时
检测到不符合要求
退出循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:24:06 | 显示全部楼层
这是因为a这一些字符他的ASCLL值不在0-9之间,也就不是数字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:26:39 | 显示全部楼层
本帖最后由 香蕉那个不拿拿 于 2023-7-29 22:42 编辑

0-9数字的ASCLL码值是连在一块的即为48 - 57
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 22:43:16 | 显示全部楼层
emm,退出循环就是不再运行循环内的代码块
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-21 03:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表