算法,伪代码

3

我尝试了多次编写算法和伪代码,以便实现在3个用户输入整数中查找最大值的程序。但是我无法正确地完成。请问我能得到帮助吗?


你尝试了什么?再加点什么。 - Alien
@Alien 我假设用户输入为x、y、z,如果x>y,则再次检查条件x>z是否成立,如果是,则x是最大的。当x>y,z>y时,还有另一个条件,如果z>x,则z是最大的数字。同样地,我尝试了一下。这样检查条件很难。 - Kavindu Gayantha
编辑你的问题并添加自己的伪代码 - 似乎你知道该做什么,但对细节有疑问。 - MBo
你认为为什么从三个整数中找到最大值与从十一个整数中找到最大值不同呢? - ChatterOne
2个回答

2

Pseudocode for maximum of 3 integers-

print max(max(first_integer,second_integer),third_integer)

我认为我没有明白。对我来说不够清楚,理解不了。 - Kavindu Gayantha
什么是困难的呢? - nice_dev
我不明白这段代码的作用。max(max(first_integer, second_integer), third_integer) - Kavindu Gayantha
max(a,b) finds maximum between a and b - nice_dev
1
啊哈,我明白了。谢谢。 - Kavindu Gayantha

2

所以你有三个数字,x、y和z。你想要最大的数。这里有一些规则:

  1. 如果 x > y,则最大数不可能是 y;它必须是 x 或 z。因此请检查 x > z。
  2. 如果 x < y,则最大数不可能是 x;它必须是 y 或 z。因此请检查 y > z。

这导致以下代码:

if (x > y)
    if (x > z)
        largest = x;
    else
        largest = z;
else // y >= x
    if (y > z)
        largest = y;
    else
        largest = z;

如果你有一个返回两个数字中最大值的max函数,那么你可以简化这段代码:
largest = max(x, y);
largest = max(largest, z);

这可以进一步优化为largest = max(max(x, y), z);


好的。谢谢。解释得很清楚。我会尝试以这种方式思考。 - Kavindu Gayantha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接