由键盘输入,求n个不同数的最大值和次大值。

由键盘输入,求n个不同数的最大值和次大值。
一定从键盘输入!
《Java程序设计基础(第六版)》,例题5.2升级版!

最直接的方法是先输入n个数,保存在数组中,然后排序。
代码如下:

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入n的值:");
        int n = sc.nextInt();
        System.out.print("请输入"+n + "个数:");
        int[] a = new int[n];
        for(int i = 0;i<n;i++)
            a[i] = sc.nextInt();
        
        //从小到大排序
        for(int i = 0;i<n-1;i++){
            for(int j = 0;j<n-1-j;j++){
                if(a[j] > a[j+1]){
                    int t = a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
        //输出最大值和次大值
        System.out.println("最大值:"+a[n-2]+",次大值:"+a[n-1]);
    } //main end

定义2个变量,一个最大值,一个次大值;
只需遍历一次,
如果当前元素值 大于 最大值,则把次大值 = 原最大值,最大值改为当前元素值;
如果当前元素值大于次大值,并且小于最大值,则把次大值改为当前元素值,最大值不变;
循环;
遍历一次得到最大值和次大值