最大的第二个数字 [英] The largest second number

查看:135
本文介绍了最大的第二个数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我到处搜索找到第二大数字的解决方案,但我在所有网站都有一个解决方案,这是错误的。

I searched everywhere for a solution to find the second largest number, but I got one solution in all sites, and it's wrong.

我找到的代码:

public static void main(String[] args) {
    int arr[] = { 1, 23, 47, 81, 92, 88, 52, 48, 56, 66, 65, 76, 71, 85,
                   49, 53, 56, 61, 65, 84 };
    secondLargeNumber(arr);
}

public static void secondLargeNumber(int[] arr) {
    int largest = arr[0];
    int secondLargest = arr[0];
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] > largest) {
            secondLargest = largest;
            largest = arr[i];
        } else if (arr[i] > secondLargest) {
            secondLargest = arr[i];
        }
    }
    System.out.println("second largest in array is:" + secondLargest);

}

代码工作正常,但如果我更改了输入序列至:

The code works fine , but if I changed the input sequence to:

 int arr[] = { 11, 10, 11, 2, 3, 4, 5, 6, 7, 8};

输出将是:

second largest in array is:11

我真的不知道怎么办!

推荐答案

只需这样做:

else if (arr[i] > secondLargest && arr[i] != largest) {
    secondLargest = arr[i];
}

这篇关于最大的第二个数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆