输出数组前三大的数值和下标

输出数组前三大的数值和下标

package Wanshang317;

public class 第二大数组下标 {
    public static void main(String[] args) {
        /*思路:如果当前元素大于最大数 max,
        则让第二大数等于原来的最大数 max,
        再把当前元素的值赋给 max。
        如果当前的元素大于等于第二大数secMax的值而小于最大数max的值,
        则要把当前元素的值赋给 secMax。*/
        //依次类比,可以找到第三大数字及其下标
        //需求:给定一个数组{1,2,30,4,5},打印出该数组前三大
        int[] arr = {1,3,30,4,5};
        int max = arr[0];
        int secMax = 0;
        int Index = 0;
        int secIndex = 0;
        int thMax =0;
        int thIndex = 0;
        for(int i=0;i<arr.length;i++){//遍历
            if(arr[i]>max){  //找最大值
                thMax = secMax;//将原来的第三大变为第二大
                thIndex =secIndex;
                secMax=max;//如果条件成立,原来的最大值变为第二大
                secIndex = Index;
                max = arr[i];
                Index = i;//当找到最大值时,就把下标赋值
            }else if(arr[i]>secMax){
                    secMax = arr[i];
                    secIndex = i;
                }
            else
            {
                thMax =arr[i];
                thIndex =i;
            }
        }
        System.out.println("数组中的最大值是:"+max+",它的下标是:"+Index);
        System.out.println("数组中的第二大值是:"+secMax+",它的下标是:"+secIndex);
        System.out.println("数组中的第三大值是:"+thMax+",它的下标是:"+thIndex);
    }
}

输出结果是:

数组中的最大值是:30,它的下标是:2
数组中的第二大值是:5,它的下标是:4
数组中的第三大值是:1,它的下标是:0

进程已结束,退出代码 0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值