鱼C论坛

 找回密码
 立即注册
查看: 49|回复: 13

[已解决]S1E15,C语言问题

[复制链接]
最佳答案
0 
发表于 2020-2-14 20:47:57 | 显示全部楼层 |阅读模式

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

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

x
  1. ……
  2. while ((ch = getchar()) != '\n')
  3. {
  4.         if (ch < '0' || ch > '9')
  5.                 continue;
  6.         // 语句A
  7. }
  8. ……
复制代码



请问语句 A 在什么情况下会被执行?为什么???
最佳答案
2020-2-14 21:17:04
  1. void test() {
  2.        
  3.         int a = 1;
  4.         if (a)
  5.                 printf("判断里面!");
  6.         printf("所谓语句A");

  7.        
  8.        
  9. }
复制代码

你可以把a变成0,这个所谓语句A始终执行
你提供的代码,可以详写成:
  1.   if (ch < '0' || ch > '9'){
  2.                 continue;
  3. }
  4.         // 语句A
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
25 
发表于 2020-2-14 21:17:04 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

  1. void test() {
  2.        
  3.         int a = 1;
  4.         if (a)
  5.                 printf("判断里面!");
  6.         printf("所谓语句A");

  7.        
  8.        
  9. }
复制代码

你可以把a变成0,这个所谓语句A始终执行
你提供的代码,可以详写成:
  1.   if (ch < '0' || ch > '9'){
  2.                 continue;
  3. }
  4.         // 语句A
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
23 
发表于 2020-2-14 21:21:49 | 显示全部楼层
如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
26 
发表于 2020-2-14 22:28:35 | 显示全部楼层
输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合[48:57]时,语句A执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
26 
发表于 2020-2-14 22:30:20 | 显示全部楼层
SHRS23 发表于 2020-2-14 21:21
如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A

在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-14 22:41:17 | 显示全部楼层
4goodworld 发表于 2020-2-14 21:17
你可以把a变成0,这个所谓语句A始终执行
你提供的代码,可以详写成:

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-14 22:42:08 | 显示全部楼层
SHRS23 发表于 2020-2-14 21:21
如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-14 22:42:54 | 显示全部楼层
major_lyu 发表于 2020-2-14 22:28
输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合[48:57]时,语句A执行

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-14 22:43:31 | 显示全部楼层
major_lyu 发表于 2020-2-14 22:28
输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合[48:57]时,语句A执行

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-14 22:44:34 | 显示全部楼层
major_lyu 发表于 2020-2-14 22:30
在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个 ...

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
23 
发表于 2020-2-15 00:33:47 | 显示全部楼层
major_lyu 发表于 2020-2-14 22:30
在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个 ...

对的,我没看仔细
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
23 
发表于 2020-2-15 00:34:36 | 显示全部楼层
老牛来学习 发表于 2020-2-14 22:42
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。

看5楼答案,小甲鱼是对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
26 
发表于 2020-2-15 13:48:12 | 显示全部楼层
老牛来学习 发表于 2020-2-14 22:42
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。

ASCII码在字符‘0’和‘9’之间,的就只有‘0’,’1‘,’2‘,’3‘,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’。所以,只有输入为这几个字符时,A语句才会执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
26 
发表于 2020-2-15 13:50:07 | 显示全部楼层
老牛来学习 发表于 2020-2-14 22:44
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。

你可以去仔细看一下continue语句和break语句的作用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

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

GMT+8, 2020-2-29 12:27

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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