屁哥 发表于 2017-3-10 17:37:46

找个师兄带带 带你学C带你飞 第13课 课后题 不会

里面 num = 10 * num + (ch - '0')这句 还有 下面 if(num)什么意思{:9_222:}

lumber2388779 发表于 2017-3-10 17:46:31

(ch - '0')就是将你输入的数字从字符串转换成实际的数字,因为数字字符的ASCII是48如果你直接输出字符'0'的值就是48,'0'的ASCII是数字中最小的后边都是顺序1-9减掉'0'就能转换成你实际输入的数字
num = 10 * num + (ch - '0')是将你先输入的值乘以10加上后输入的数,其实就是根据你输入的数先后顺序转换成实际的值
if(num)就是有了实际数字 就退出,在编程语言中认为所有非零值,都认为是TRUE,

屁哥 发表于 2017-3-10 18:33:54

lumber2388779 发表于 2017-3-10 17:46
(ch - '0')就是将你输入的数字从字符串转换成实际的数字,因为数字字符的ASCII是48如果你直接输出字符'0'的 ...

举个例子呗{:9_221:}

屁哥 发表于 2017-3-10 18:46:16

lumber2388779 发表于 2017-3-10 17:46
(ch - '0')就是将你输入的数字从字符串转换成实际的数字,因为数字字符的ASCII是48如果你直接输出字符'0'的 ...

好像懂了(ch - '0')‘0’的ASCll 的值是 48用户输入2(‘2’对应的ASCll值是 50 ,‘2’-‘0’==50 - 48 )输出就是2。 是这意思吧
num = 10 * num + (ch - '0')是将你先输入的值乘以10加上后输入的数,其实就是根据你输入的数先后顺序转换成实际的值 \\ 没懂
还是输入2 呢?

屁哥 发表于 2017-3-10 19:51:24

lumber2388779 发表于 2017-3-10 17:46
(ch - '0')就是将你输入的数字从字符串转换成实际的数字,因为数字字符的ASCII是48如果你直接输出字符'0'的 ...

num = 10 * num + (ch - '0')
输入2 先输入的值乘以10 加上后输入的数
2 * 10 = 20 + (ch - '0')

lumber2388779 发表于 2017-3-10 21:59:13

屁哥 发表于 2017-3-10 19:51
num = 10 * num + (ch - '0')
输入2 先输入的值乘以10 加上后输入的数
2 * 10 = 20 + (ch - '0')

比如你先输入2再输入0 前边num初始值为0,然后ch-'0'就是2 num=2
然后0ch-'0'=0 num=2*10+0=20
其实就是你输入什么数字字符串就组成什么数字 直到你输入非数字就会停下
晚上回家在忙别的没怎么看论坛 抱歉

屁哥 发表于 2017-3-11 11:01:29

lumber2388779 发表于 2017-3-10 21:59
比如你先输入2再输入0 前边num初始值为0,然后ch-'0'就是2 num=2
然后0ch-'0'=0 num=2*10+0=20
其实 ...

谢谢明白点了 再琢磨琢磨   有点笨 嘿嘿

lumber2388779 发表于 2017-3-11 12:04:02

屁哥 发表于 2017-3-11 11:01
谢谢明白点了 再琢磨琢磨   有点笨 嘿嘿

慢慢来 编程最重要是思维 一开始想一些东西可能会转不过来,能图像化就比较好理解了
页: [1]
查看完整版本: 找个师兄带带 带你学C带你飞 第13课 课后题 不会