cjh1 发表于 2021-2-3 15:50:32

来自C语言教程 for语句嵌套 课后作业

本帖最后由 cjh1 于 2021-2-3 15:53 编辑

不太理解 scanf 和 getchar在代码中的作用{:10_261:}

昨非 发表于 2021-2-4 17:14:13

不懂的方法函数可以先查看一下定义
https://www.runoob.com/cprogramming/c-function-scanf.html
https://www.runoob.com/cprogramming/c-function-getchar.html
讲的很清楚的

cjh1 发表于 2021-2-4 19:34:04

昨非 发表于 2021-2-4 17:14
不懂的方法函数可以先查看一下定义
https://www.runoob.com/cprogramming/c-function-scanf.html
https:/ ...

我主要是不是很了解他们在语句当中的作用 特别是第二个getchar()不是很明白他在句子当中的作用{:10_245:}

昨非 发表于 2021-2-4 19:36:31

cjh1 发表于 2021-2-4 19:34
我主要是不是很了解他们在语句当中的作用 特别是第二个getchar()不是很明白他在句子当中的作用{:10_245 ...

哪一句?

cjh1 发表于 2021-2-4 19:46:52

昨非 发表于 2021-2-4 19:36
哪一句?

图片1第16行{:10_298:}

昨非 发表于 2021-2-4 19:54:37

cjh1 发表于 2021-2-4 19:46
图片1第16行

第十五行scanf的返回值是成功匹配的个数(正常情况下为1)
第十六行的条件翻译一下就是:输入不为回车   且   成功匹配

cjh1 发表于 2021-2-4 20:06:13

昨非 发表于 2021-2-4 19:54
第十五行scanf的返回值是成功匹配的个数(正常情况下为1)
第十六行的条件翻译一下就是:输入不为回车   ...

getchar的作用是判断scanf()是否到达回车 可以这样理解么

我总觉得要输入两次 scanf一次 getchar一次{:10_256:}

昨非 发表于 2021-2-4 20:19:39

cjh1 发表于 2021-2-4 20:06
getchar的作用是判断scanf()是否到达回车 可以这样理解么

我总觉得要输入两次 scanf一次 getchar一 ...

是同一次
而且真正退出循环用的是第二个条件:输入不是浮点型时(如:q)
status = scanf("%f", &num)的返回值就不是1,以此跳出循环

cjh1 发表于 2021-2-4 20:27:37

昨非 发表于 2021-2-4 20:19
是同一次
而且真正退出循环用的是第二个条件:输入不是浮点型时(如:q)
status = scanf("%f", &num) ...

噢 明白了
最后我还有一个小问题 就是为什么老师要用嵌套一个do-while语句 而不直接用里面那个{:10_254:}

昨非 发表于 2021-2-4 20:38:57

cjh1 发表于 2021-2-4 20:27
噢 明白了
最后我还有一个小问题 就是为什么老师要用嵌套一个do-while语句 而不直接用里面那个{:10_25 ...

看题目要求
B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分隔符(如下图)
也就是,内层对应一行输入,(遇\n停)
外层对应全部输入

cjh1 发表于 2021-2-4 21:10:46

昨非 发表于 2021-2-4 20:38
看题目要求

也就是,内层对应一行输入,(遇\n停)


嗷嗷嗷 厉害{:10_301:}

昨非 发表于 2021-2-4 21:17:28

cjh1 发表于 2021-2-4 21:10
嗷嗷嗷 厉害

楼主能不能给评分加个贡献
放心你不会有损失的

cjh1 发表于 2021-2-4 21:34:27

昨非 发表于 2021-2-4 21:17
楼主能不能给评分加个贡献
放心你不会有损失的

ok

昨非 发表于 2021-2-4 21:36:28

cjh1 发表于 2021-2-4 21:34
ok

谢啦
页: [1]
查看完整版本: 来自C语言教程 for语句嵌套 课后作业