xzh莫小痕 发表于 2023-9-9 18:43:55

想请教一下大家

大家好,我想问一下,这个是一个四则运算的代码,我有些地方没有看懂,想请教一下大家
1.代码里面引进了布尔类型的头文件,我确实没看懂为啥要引进布尔类型
2.switch旁边小括号里面的ch,,我不懂ch在这道题里面有啥作用

isdkz 发表于 2023-9-9 18:44:00

你好,我可以回答你的问题。

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

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

希望我的回答能够帮到你。如果你还有其他问题,请随时提出。

tommyyu 发表于 2023-9-9 18:49:15

对于第一个问题,在一些 C 版本中,bool 无法直接使用,而是需要引入 stdbool 头文件。
对于第二个问题,ch 作为加减乘除之类的运算符被读取,在第12行中被读取,在第14行中被使用。

xzh莫小痕 发表于 2023-9-9 18:49:58

tommyyu 发表于 2023-9-9 18:47
对于第一个问题,请你详细说明到底哪里不会。
对于第二个问题,ch 作为加减乘除之类的运算符被读取,在第1 ...

谢谢,第二个问题我懂了,我想问一下,他加入布尔类型,invalid=false,这个是啥意思,以及后面op2等于0时,invalid=true这个又在表达什么

tommyyu 发表于 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!”

xzh莫小痕 发表于 2023-9-9 19:06:07

tommyyu 发表于 2023-9-9 18:54
invailid 主要是用于判断用户输入的表达式是否是非法的。

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

不好意思,我不是很懂诶
我认为就是false代表0,ture代表1

tommyyu 发表于 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.

xzh莫小痕 发表于 2023-9-9 19:13:42

tommyyu 发表于 2023-9-9 19:08
确实如此。但是在 C 语言中,0还代表假,除0之外的数字代表真。上述代码会显示 1。
上述代码会显示 0.

那个我想问一下,在刚开始的时候,将0赋值给了invalid ,为啥不能再一开始将1赋值给invalid呢,

Mike_python小 发表于 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),然后在进行除法运算时,根据具体情况再进行标记。
页: [1]
查看完整版本: 想请教一下大家