Java习题-由浅入深(06/24)

题目:

1.定义一个函数,获取某个数组中的最小值 
2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出 
3.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分? 
4.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。 
5.提取一个方法,将指定数组中的数组元素进行反转 
例如:{10,23,2,45,6}--->{6,45,2,23,10}
6.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组 

答案:

import java.util.Arrays;
import java.util.Scanner;
public class test01{
    public static void main(String[] args) {
        //Q1
        int[] arrQ1 = {1,2,3,4,5};
        System.out.println("最小值:"+minNum(arrQ1));

        //Q2
        int [] arrQ2 = {1,2,3,4,5,6,7,8,9,10};
        searchNum(maxNum(arrQ2),arrQ2);

        //Q3
        int [] arrQ3 = {1,2,3,4,5,6,7,8,9,10};
        System.out.println("去掉极值后,平均分:"+calculateScores(arrQ3));

        //Q4
        int [] arrQ4 = {60,70,80,90,100};
        Arrays.sort(arrQ4);
        System.out.println("平均成绩:"+Scores(arrQ4));
        System.out.println("最低分:"+minNum(arrQ4));
        System.out.println("最高分:"+maxNum(arrQ4));

        //Q5
        int[] arr = {10, 23, 2, 45, 6};
        reverseArr(arr);
        for (int element : arr) {
            System.out.println(element + " ");
        }

        //Q6
        Scanner sc = new Scanner(System.in);
        // 输入数组
        System.out.println("输入数组长度:");
        int length = sc.nextInt();
        int[] arrQ6 = new int[length];
        System.out.println("输入数组元素:");
        for (int i = 0; i < length; i++) {
            arrQ6[i] = sc.nextInt();
        }
        // 调用交换方法
        swapMinMax(arrQ6);
        // 输出交换后的数组
        System.out.println("交换后的数组:");
        for (int element : arrQ6) {
            System.out.print(element + " ");
        }
        sc.close();

    }

    public static int minNum(int[] num){
        int minNum = num[0];
        for(int i=0;i<num.length;i++){
            if(num[i]<num[0]){
                minNum = num[i];
            }
        }
        return minNum;
    }
    public static int maxNum(int[] num){
        int maxNum = num[0];
        for(int i=0;i<num.length;i++){
            if(num[i]>num[0]){
                maxNum = num[i];
            }
        }
        return maxNum;
    }

    public static void searchNum(int num1,int[]num) {
        for(int i=0;i<num.length;i++){
            if(num1==num[i]){
                System.out.println("找到了,下标为"+i);
            }
        }
    }

    public static double calculateScores(int[] num) {
        int calculateScores=0;
        for(int element:num){
            if (element!=minNum(num)&&element!=minNum(num)){
                calculateScores +=element;
            }
        }
        //System.out.println(calculateScores);
        return calculateScores/(num.length-2);
    }

    public static double Scores(int[] num) {
        int Scores=0;
        for(int element:num){
            Scores +=element;
        }
        System.out.println(Scores);
        return Scores/(num.length);
    }

    private static void reverseArr(int[] array) {
        int start = 0;
        int end = array.length - 1;
        while (start < end) {
            int temp = array[start];
            array[start] = array[end];
            array[end] = temp;
            start++;
            end--;
        }
    }

    private static void swapMinMax(int[] array) {
        if (array == null || array.length < 2) {
            System.out.println("数组长度太小,无法进行交换。");
            return;
        }

        // 找到最大和最小元素的索引
        int maxIndex = 0;
        int minIndex = 0;

        for (int i = 1; i < array.length; i++) {
            if (array[i] > array[maxIndex]) {
                maxIndex = i;
            } else if (array[i] < array[minIndex]) {
                minIndex = i;
            }
        }

        // 与第一个元素交换
        swap(array, 0, maxIndex);

        // 与最后一个元素交换
        swap(array, array.length - 1, minIndex);
    }

    // 交换数组中两个位置的元素
    private static void swap(int[] array, int i, int j) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值