作业S1E13
动动手打印数字的题目中:temp = 10 * num + (ch - '0');
这行代码怎么理解? 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 SHRS23 发表于 2021-7-28 14:27
do-while 循环的作用是每次处理一个字符
假设你的输入是123
程序处理时候会认为你输入的是三个字符 ‘1’ ...
这里输出的其实是个int型数字,对吧,很妙!
我编的时候,在每次循环判断getchar()后进行了putchar(),
也是实现了所说的功能。 JoyceJi 发表于 2021-7-28 14:33
这里输出的其实是个int型数字,对吧,很妙!
我编的时候,在每次循环判断getchar()后进行了putchar(), ...
题目的本意应该就是输出int类型
页:
[1]