鱼C论坛

 找回密码
 立即注册
查看: 1280|回复: 3

[已解决]作业S1E13

[复制链接]
发表于 2021-7-28 14:15:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
动动手打印数字的题目中:
temp = 10 * num + (ch - '0');
这行代码怎么理解?
最佳答案
2021-7-28 14:27:45
do-while 循环的作用是每次处理一个字符
假设你的输入是123
程序处理时候会认为你输入的是三个字符 ‘1’‘2’‘3’
你有疑问的这个语句就是把这三个字符拼成整型数据 123
处理字符1时 temp = 10 * 0 + (49 - 48) = 1, 随后num被赋值为temp   // 字符1的ascii码是49,字符0的ASCII码是48,处理数字字符的时候常用(ch - '0')来获取字符所对应的数字
处理字符2时 temp = 10 * 1 + (50 - '0') = 12
处理字符3时 temp = 10 * 12 + (51 - '0') = 123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-28 14:27:45 | 显示全部楼层    本楼为最佳答案   
do-while 循环的作用是每次处理一个字符
假设你的输入是123
程序处理时候会认为你输入的是三个字符 ‘1’‘2’‘3’
你有疑问的这个语句就是把这三个字符拼成整型数据 123
处理字符1时 temp = 10 * 0 + (49 - 48) = 1, 随后num被赋值为temp   // 字符1的ascii码是49,字符0的ASCII码是48,处理数字字符的时候常用(ch - '0')来获取字符所对应的数字
处理字符2时 temp = 10 * 1 + (50 - '0') = 12
处理字符3时 temp = 10 * 12 + (51 - '0') = 123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 14:33:54 | 显示全部楼层
SHRS23 发表于 2021-7-28 14:27
do-while 循环的作用是每次处理一个字符
假设你的输入是123
程序处理时候会认为你输入的是三个字符 ‘1’ ...

这里输出的其实是个int型数字,对吧,很妙!
我编的时候,在每次循环判断getchar()后进行了putchar(),
也是实现了所说的功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-28 15:01:17 | 显示全部楼层
JoyceJi 发表于 2021-7-28 14:33
这里输出的其实是个int型数字,对吧,很妙!
我编的时候,在每次循环判断getchar()后进行了putchar(), ...

题目的本意应该就是输出int类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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