数值型数组特征值统计

发布时间 2023-04-12 11:42:44作者: 晓枫的春天

这里的特征值涉及到:平均值、最大值、最小值、总和等

举例1、求和、均值

    public static void testArrayElemenSUmAvg(int arr[]) {
        //求和
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        System.out.println("数组和是 " + sum+" \t均值是 " + (sum/arr.length));
    }

举例2:求数组元素的总乘积

    public static void testArrayElemenMul(int arr[]) {
        //求和
        int res = 1;
        for (int i = 0; i < arr.length; i++) {
            res *= arr[i];
        }
        System.out.println("数组乘积是 " + res);
    }

举例3:求数组元素中偶数和被3整除元素的个数

    public static void testArrayElemenSpecial(int arr[]) {
        //求和
        int evenNum = 0;
        int zc3 = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                evenNum++;
            }
            if (arr[i] % 3 == 0) {
                zc3++;
            }
        }
        System.out.println("数组中有 " + evenNum + " 个偶数,有 " + zc3 + " 个被3整除的元素");
    }

举例3:求数组极值

    public static void testArrayElemenMaxMin(int arr[]) {
        //求和
        int amx = arr[0];
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (amx < arr[i]) {
                amx = arr[i] ;
            }
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        System.out.println("数组中最大值是  " + amx + " 最小值是  " + min  );
    }

举例4:评委打分

分析以下需求,并用代码实现:

(1)在编程竞赛中,有10位评委为参赛的选手打分,分数分别为:5,4,6,8,9,0,1,2,7,3

(2)求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)

    public static void main(String[] args) {
        int[] scores = {5,4,6,8,9,0,1,2,7,3};
        int max = scores[0];
        int min = scores[0];
        int sum = 0;
        for(int i = 0;i < scores.length;i++){
            if(max < scores[i]){
                max = scores[i];
            }
            if(min > scores[i]){
                min = scores[i];
            }
            sum += scores[i];
        }
        double avg = (double)(sum - max - min) / (scores.length - 2);
        System.out.println("选手去掉最高分和最低分之后的平均分为:" + avg);
    }