当前位置: 首页 > 知识库问答 >
问题:

找到最小的两个数字使用Java-

松兴邦
2023-03-14

所以我有一个任务,我需要找到用java输入的两个数字中最小的一个。以下是说明:

输入一组正整数,以 -1 结尾作为哨兵。按该顺序打印这些数字中的最小和第二小数字。这两个数字可能彼此相等 - 请参阅下面的第二个示例

您应该检查在-1之前至少有两个数字输入,这样总是会有一个最小的和第二小的数字。(提示:在开始输入其余数字的循环之前,您可能希望分别输入前两个数字。)如果第一个或第二个数字是-1,您应该调用IO.reportBadInput并停止程序。

例如:

java TwoSmall
32
11
19
7
-1
RESULT:7
RESULT:11

我已经完成了作业,但我想知道是否有更简单的方法:

这是我的代码:

public class TwoSmall
{
public static void main(String[]args){
int smallest,secondSmallest,temp = 0;


System.out.println("Please enter a number");
smallest = IO.readInt();
System.out.println("Please enter a number");
secondSmallest = IO.readInt();

    // Used to sort intial two numbers
    if (smallest>secondSmallest){

        temp = smallest;
        smallest = secondSmallest;
        secondSmallest = temp;

    }

    if (smallest !=-1 && secondSmallest !=-1){
        while (temp != -1){
            System.out.println("Please enter a number");
            temp = IO.readInt();
                if (temp<smallest && temp != -1){
                    secondSmallest = smallest;
                    smallest = temp;
                }else if (temp<secondSmallest && temp != -1){
                    secondSmallest = temp;
                }

        }
        IO.outputIntAnswer(smallest);
        IO.outputIntAnswer(secondSmallest);
    }else {
        IO.reportBadInput();
    }       
}
}

我觉得我为一个简单的问题写了太多代码。

共有2个答案

谭梓
2023-03-14

无论值多少,这都会为您提供任何数量的数字中较小的一个,同时忽略空值(只需确保您的列表由相同类型的数字组成,整数、长、浮点数等)

smaller = Arrays.asList(3,6)。流()。filter(Objects::nonNull)。已排序()。findFirst()。orElse(空);

司空俊悟
2023-03-14

正如您在问题中所说,这是一项家庭作业,因此人们不愿意给您答案。您的问题有点令人困惑,无论您是想在一个集合中找到最小的2个数字,还是要比较两个数字并返回最小的数字。以下是每个方法的高级方法

在集合中找到2个最小的数字

    < li >将所有数字放入数组中。 < li >排序数组。 < li >返回< code>array[0]和< code>array[1]

比较两个数字并返回最小的数字

  • 声明接受两个参数 ab 的函数
  • 如果(a

 类似资料:
  • 我有一个任务需要完成:

  • 问题内容: 如果不使用数组,我可以得到最大的数组,但是无法获得最小的数组。 最小的代码。 问题答案:

  • 问题内容: 简介: 就我所能搜索到的而言,尚无此问题。 这是一个面试问题。 我什至没有专门寻找代码解决方案,任何算法/伪代码都可以使用。 问题: 给定一个整数数组及其大小,找到2个最小和的 非后续 元素(在数组中不能相邻)。另外,答案中不得包含第一个或最后一个元素(index 和)。解决方案还应该是 时间和空间的复杂性。 例如,当回答是,因为。 当答案为时,因为和不能选择的任何一个,因为处于数组的

  • 一个网站的问题:实现一个Java函数,在一个数组中找到两个彼此距离最小的数字。函数应该返回第一个数字的索引。 null

  • 作为这个问题的一部分,我需要找到: 数字的数量(计数) 数字之和(sum) 数字的平均值(平均值) 哪些数字是偶数(偶数) 哪些数字是奇数(赔率) 我尝试在while循环中执行此操作: 其思想是,当while循环迭代时,它会将它通过的数字与最大值进行比较,并将它在计数中找到的最大值与最大值进行匹配,如果它找到的数字大于最大值,则成为新的最大值。对最小的也是同样的想法。 但它并不起作用。我该怎么办?

  • 问题内容: 我在此站点上找到此代码以查找第二大数字: 是否可以修改此代码以找到第二个 最小的 数字?所以举个例子 问题答案: 确实可以修改该函数以找到第二个最小的函数: 旧版本依赖于Python 2实施细节,该细节始终排在其他任何东西之前(因此测试为“较小”);我取代了使用作为前哨,为无穷大总是测试, 更大的 比任何其它号码。理想情况下,应该使用原始函数代替原始函数,以免与其他Python实现可能