for循环运算符:搜索键盘输入中的最小数字


给定数中的最大数

在研究条件运算符时,我们谈到了从输入的多个数字中找到最大数字的主题。在“四个数的最大值”问题中我们使用了以下算法:
1. 将变量M的值赋给四个变量中的第一个;
2. 如果第二个变量的值大于变量M中的值,则将变量的值替换为第二个变量的值;
3. 如果第三个变量的值大于变量M中的值,则用第三个变量的值替换变量M的值;< br /> 4. 如果第四个变量的值大于M变量中的值,则用第四个变量的值替换变量的值。

可以看出,每一个 我们与变量M比较的数字 (让我们用X表示),如下:
 
伪代码
<前> 输入 X 如果 (M < X) 那么   M = X
这段代码的主要内容是确定变量 M 的初始值。
通常,在解决寻找最大值或最小值的问题时,变量 M 的初始值被分配为等于第一个数字。
因此,上面的代码必须执行小于数字个数的1次(因为第一个数字必须被输入并存储为变量M的初始值)。
如果我们从键盘上设置了数字的数量(例如,在变量 n 中),那么我们可以组织一个循环(from 2 to n),使用相同的数字来存储数字变量。

尝试自己编写程序。

最大不在所有之中

如果我们不需要在所有输入的数字中找到最大值(最小值),而只是在满足特定条件的数字中找到最大值(最小值),那么我们必须考虑到这样一个事实,即我们取的第一个数字作为最大值的初始值(最低)并不总能满足我们的要求。

例如,如果我们正在寻找最大负数,那么数据集为:\(\{5, -2, 4, 2, -1, -3\}\ ) 我们将得到最大值初始值中的数字5,它是正数并且大于任何负数。因此条件 X > M 永远是 false。

因此,仅在上一题的算法中添加一个负数检查是不够的,还需要考虑到第一个数字可能不满足要求的条件(在这种情况下,为负数) ).

您可以通过在循环内添加以下条件来解决此问题:

伪代码
<前> 如果 X 为负,则 如果 M >= 0 或 M <; X,那么 M=X
在指定的代码中, M >= 0 条件允许您执行  M = X 操作,即使 变量最初包含一个明显大于其余值的值(在我们的示例中,该值等于 5)。

我们还注意到,如果已知数字的范围,则可以将指定范围内的最小(最大)数字作为最大(最小)值的初始值。