我试图自己解决这个问题而我不能。 教授要求这样做。 用户将定义序列的长度。 然后,用户将输入任何范围内的数字,包括neg和pos。 该程序: 找到两个最大的数字并按降序显示。 找到两个最小的数字并按升序显示。
无法使用排序或数组。 我有一个大纲但是,我的脑袋只是想使用数组.....我没有看到这个简单没有数组。困惑。我是初学者。我只是想要帮助。建议吗?导师?
答案 0 :(得分:2)
从一个更简单的问题的解决方案开始,并将其发展为您正在解决的实际问题的解决方案:
上述两项任务中的挑战是高/低水印的初始值。这是一个常见的错误来源; SO上有多个Q& As解释修复。
现在有趣的部分:
这需要您编写几个if
语句。
答案 1 :(得分:0)
算法 (“在不存储序列的情况下查找序列中的两个最大数字”)
(我决定取消删除这个答案。可能有助于OP远离阵列框架)
Input: A sequence of values S.
Output: Values Max and SecondMax.
The consumed, current value of S is E
1 : Set Max to E
2 : Set SecondMax to E (Second value in S)
3 : If Max < SecondMax -> Swap Max and SecondMax.
4 : while ( e:= E exists)
4.1 : If ( e > Max ) SecondMax := Max, Max := e
4.1.1 : Else If ( e > SecondMax ) SecondMax := e
这可以简单地扩展到最低限度。