数组练习

1.定义一个函数,获取某个数组中的最小值

 

public class ArrayTest1 {
    public static void main(String[] args) {
        // 定义一个函数,获取某个数组中的最小值
        int[] nums = {1,32, 2, 8, 10, 23, 50};
        ArrayTest1 arrayTest1 = new ArrayTest1();
        int numsMin = arrayTest1.getArrayMin(nums);
        System.out.println(numsMin);

    }

    public int getArrayMin(int[] array){
        int result = array[0];
        for (int i = 1; i < array.length; i++) {
             result = (Math.min(array[i], result));
        }
        return result;
    }
}

 

运行结果:

 

 2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出

 

public class ArrayTest2 {
    public static void main(String[] args) {
        //定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
        int[] nums = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50};
        ArrayTest2 arrayTest2 = new ArrayTest2();
        arrayTest2.getMax(nums);
    }

    public  void getMax(int[] array){
        int max = array[0];
        int maxIndex = 0;
        for (int i = 0; i < array.length; i++) {
            if(max < array[i]){
                max = array[i];
                maxIndex = i;
            }
        }
        System.out.print("数组中最大的数是:" + max + ",下标为:" + maxIndex);
    }

}

 

运行结果:

 

3.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?

 解决思路一:找出最大值和最小值出来,然后数组求和后扣除最大值和最小值,再取平均

public class ArrayTest3 {
    public static void main(String[] args) {
         //B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?

int[] score = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50}; ArrayTest3 arrayTest3 = new ArrayTest3(); arrayTest3.getAverage(score); } public void getAverage(int[] array){ int max = array[0]; int min = array[0]; int sum = 0; for (int j : array) { if (j > max) { max = j; } if (j < min) { min = j; } sum += j; } sum -= (max+min); float average = (float) sum/(array.length-2); System.out.println("最高分:"+max); System.out.println("最低分:"+min); System.out.println("平均分:"+average); } }

解决思路二:排序,然后去掉第一个和最后一个,再取平均

import java.util.Arrays;

public class ArrayTest4 {
    public static void main(String[] args) {
        //B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
        
        int[] score = {11, 22, 98, 6, 30, 82, 92, 49, 66, 50};
        ArrayTest4 arrayTest4 = new ArrayTest4();
        arrayTest4.getAverage(score);
    }

    public void getAverage(int[] array){
        Arrays.sort(array);
        int[] newArray = Arrays.copyOfRange(array,1,array.length-1);
        int sum = 0;
        for(int x:newArray){
            sum += x;
        }
        double average = (double)sum/ newArray.length;
        System.out.println("最高分:"+array[array.length-1]);
        System.out.println("最低分:"+array[0]);
        System.out.println("平均分:"+average);
    }
}

运行结果:

 

 4.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。

 

import java.util.Arrays;

public class ArrayTest5 {
    public static void main(String[] args) {
        //定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。
        int[] stuScore={88, 90, 93, 97, 94};
        ArrayTest5 arrayTest5 = new ArrayTest5();
        arrayTest5.score(stuScore);

    }

    public void score(int[] stuScore){
        Arrays.sort(stuScore);
        int sum = 0;
        System.out.print("成绩从大到小:");
        for (int i= stuScore.length-1;i>=0;i--) {
            System.out.print(+stuScore[i]+"\t");
            sum += stuScore[i];
        }
        System.out.println();
        System.out.println("总成绩为:"+sum);
        System.out.println("平均成绩为:"+(sum/stuScore.length));
        System.out.println("最小成绩为:"+stuScore[0]);
        System.out.println("最大成绩为:"+stuScore[stuScore.length-1]);
    }
}

 

运行结果:

 

posted @ 2020-11-10 23:17  Danny·茄子  阅读(463)  评论(0)    收藏  举报