我需要一些帮助才能处理以下逻辑。该程序获得许多整数输入,如10,16,3,17,21,29,6
。
要完成的逻辑:
情景1:
首先选择最大的4个输入数字16,17,21,29
。现在将值分配给A,B,C和D:
要显示的结果:
A = 16
B = 29
C = 17
D = 21
场景:2
如果用户提供3个输入,例如3,6,10
,则仅分配给A,B,C,并且应忽略D
要显示的结果:
A = 3
B = 10
C = 6
答案 0 :(得分:1)
我会接受输入并将它们存储到List中。然后我会对此列表进行排序。 一旦排序,您可以根据需要提取数字。
答案 1 :(得分:1)
逻辑:
答案 2 :(得分:1)
假设您在数组中有输入值,可以使用静态Array.Sort()
方法对其进行排序,然后通过索引选择顶部/底部(例如。values[value.Length - 1]
获取最高值) 。确保做一些边界检查以避免运行时异常,并正确解决分配的“方案2”。
如果你想要更现代的东西,你也可以使用一些LINQ魔法来获得前4项:
values = values.OrderByDescending(i => i).Take(4).ToArray();
四个最高值现在位于highOnes
,您可以按照自己喜欢的顺序打印。再一次,确保做一些边界检查 - 数组中可能少于四个数字。
答案 3 :(得分:1)
听起来这可能是一项任务,所以我会给你这些提示:
如果您在数组中包含所有这些数字,则可以尝试对数组进行部分排序。编写一个简单的冒泡排序,并将最大数字排序到前面。但是,不是对整个数组进行排序,而是在将4个最大的元素带到数组的前面之后使其停止。
这样,你的第一个元素将是你最大的,依此类推。从那里,您可以轻松完成其他所需的事情。
希望有所帮助。