if语句和Pascal中的最大值

问题描述

查看以下代码

enter image description here

我认为,如果z> x和y> x,该程序将不会给出正确的最大值,但是令我惊讶的是,它确实给出了正确的值。这是为什么?程序是否比较了Y和Z并给出了最大的价值,而没有我命令它这样做?

解决方法

在第一个if语句之后,max保持xy的最大值。然后,将该最大值与第二个z语句中的if比较。由于y运算符的传递质量,您不需要直接对z>进行强制运算。

,

知道(z > y)(y > x)可以确定z > x,因此您不必比较每个值就可以假设其中一个是最大值。 在谈论编译器时,我可以建议您将Sublime用作对象pascal的良好编译器,您所要做的就是安装FPC并将其添加到构建包中,或者您可以简单地使用MyPascal,这似乎非常有用,因为您正在使用的这是老式的