鱼C论坛

 找回密码
 立即注册
查看: 1298|回复: 8

想请教一下大家

[复制链接]
发表于 2023-9-9 18:43:55 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
大家好,我想问一下,这个是一个四则运算的代码,我有些地方没有看懂,想请教一下大家
1.代码里面引进了布尔类型的头文件,我确实没看懂为啥要引进布尔类型
2.switch旁边小括号里面的ch,,我不懂ch在这道题里面有啥作用
Screenshot_2023_0909_183729.png
Screenshot_20230909_183822.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-9 18:44:00 | 显示全部楼层
你好,我可以回答你的问题。

1. 引入布尔类型的头文件是为了使用bool类型。bool类型是一种逻辑类型,只有两个值,true和false。在这个代码中,bool类型可能用于判断某些条件是否成立,从而决定程序的执行路径。

2. switch语句后面的小括号中的ch是一个变量名,用于存储用户输入的算术符号。在这个代码中,ch的作用是判断用户输入的算术符号是哪一个,然后根据不同的算术符号执行不同的操作。例如,如果用户输入的是加号,则执行加法运算。

希望我的回答能够帮到你。如果你还有其他问题,请随时提出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-9 18:49:15 | 显示全部楼层
对于第一个问题,在一些 C 版本中,bool 无法直接使用,而是需要引入 stdbool 头文件。
对于第二个问题,ch 作为加减乘除之类的运算符被读取,在第12行中被读取,在第14行中被使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-9 18:49:58 From FishC Mobile | 显示全部楼层
tommyyu 发表于 2023-9-9 18:47
对于第一个问题,请你详细说明到底哪里不会。
对于第二个问题,ch 作为加减乘除之类的运算符被读取,在第1 ...

谢谢,第二个问题我懂了,我想问一下,他加入布尔类型,invalid=false,这个是啥意思,以及后面op2等于0时,invalid=true这个又在表达什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-9 18:54:40 | 显示全部楼层
xzh莫小痕 发表于 2023-9-9 18:49
谢谢,第二个问题我懂了,我想问一下,他加入布尔类型,invalid=false,这个是啥意思,以及后面op2等于0 ...

invailid 主要是用于判断用户输入的表达式是否是非法的。

在程序的最开始,invailid 被赋值为 false(相当于常数0)。
在第27行里,当除数等于0时,invailid 被赋值为 true(相当于常数1),即用户输入的表达式是非法的。
最后,在32行里,如果 invailid 的值为真(即 true),则代表用户输入的表达式是非法的,输出“除数不能为0!”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-9 19:06:07 From FishC Mobile | 显示全部楼层
tommyyu 发表于 2023-9-9 18:54
invailid 主要是用于判断用户输入的表达式是否是非法的。

在程序的最开始,invailid 被赋值为 false( ...

不好意思,我不是很懂诶
我认为就是false代表0,ture代表1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-9 19:08:53 | 显示全部楼层
xzh莫小痕 发表于 2023-9-9 19:06
不好意思,我不是很懂诶
我认为就是false代表0,ture代表1

确实如此。但是在 C 语言中,0还代表假,除0之外的数字代表真。
if(0) printf("0");
else printf("1");
上述代码会显示 1。
if(1) printf("0");
else printf("1");
上述代码会显示 0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-9 19:13:42 From FishC Mobile | 显示全部楼层
tommyyu 发表于 2023-9-9 19:08
确实如此。但是在 C 语言中,0还代表假,除0之外的数字代表真。上述代码会显示 1。
上述代码会显示 0.

那个我想问一下,在刚开始的时候,将0赋值给了invalid ,为啥不能再一开始将1赋值给invalid呢,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-10 08:29:50 | 显示全部楼层
xzh莫小痕 发表于 2023-9-9 16:13
那个我想问一下,在刚开始的时候,将0赋值给了invalid ,为啥不能再一开始将1赋值给invalid呢,

在你提供的代码中,将0赋值给 invalid 是为了表示初始状态下计算结果是有效的。如果将1赋值给 invalid,意味着初始状态下计算结果是无效的。

在这段代码中,invalid 被用来标记除法运算是否有效,即除数是否为零。如果除数为零,则将 invalid 设置为 true,表示计算结果无效;否则,计算结果有效。

因此,在一开始将1赋值给 invalid,会使得程序默认认为除法运算是无效的。但实际上,在还没有进行除法运算之前,我们无法确定除数是否为零,所以最好将 invalid 设置为初始状态的默认值(例如设置为 false),然后在进行除法运算时,根据具体情况再进行标记。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 00:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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