Java基础练习题(3)

180 阅读2分钟

开启掘金成长之旅!这是我参加「掘金日新计划·12月更文挑战」的第三天,点击查看活动详情

前言

今天给大家再分享几道经典Java练习题。

题目五:评委打分

需求

在歌唱比赛中,有6名评委给选手打分,分数范围是【0-100】之间的整数。
选手最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分

分析

  1. 定义一个数组,用来存储6名评委的打分
  2. 求出数组中的最大值
  3. 求出数组中的最小值
  4. 求出数组中的6个分数的总和
  5. (总和-最大值-最小值)/4
import java.util.Scanner;
public class Test5{
   public static int[] getScores(){
       //定义数组
       int[] scores = new int[6];
       //使用键盘录入的形式,输入分数0~100
       Scanner sc = new Scanner(System.in);
       for(int i=0;i<scores.length;){
           System.out.println("请评委给选手打分");
           int score = sc.nextInt();
           if(score>=0 && score<=100){
                scores[i] = score;
                i++;
           }else{
               System.out.println("成绩超出范围,请重新输入!");
           }
       }
   }
   
   public static int getMax(int[] scoreArr){
       int max = scoreArr[0];
       for(int i = 1;i<scoreArr.length;i++){
            if(scoreArr[i]>max){
                   max = scoreArr[i];
            }
       }
       return max;
   }   
   
   public static int getMin(int[] scoreArr){
       int min = scoreArr[0];
       for(int i = 1;i<scoreArr.length;i++){
            if(scoreArr[i]<min){
                   min = scoreArr[i];
            }
       }
       return min;
   }  
   
   public static int getSum(int[] scoreArr){
       int sum = 0;
       for(int i = 0;i<scoreArr.length;i++){
            sum = sum + scoreArr[i];
       }
       return sum;
   }     
   
   public static void main(String[] args){
          //1. 定义一个数组,用来存储6名评委的打分
          int[] scoreArr = getScores();
          for(int i = 0;i<scoreArr.length;i++){
               System.out.println(scoreArr[i]);
          }     
          //2. 求出数组中的最大值
          int max = getMax(scoreArr);
          //3. 求出数组中的最小值
          int min = getMin(scoreArr);
          //4. 求出数组中的6个分数的总和
          int sum = getSum(scoreArr);
          //5. (总和-最大值-最小值)/4
          int avg = (sum - max - min)/(scoreArr.length - 2);
          //打印结果
          System.out.println(avg);
   }
}


        

题目六:数字加密

需求

  • 某系统的数字密码(大于0),比如1983,采用加密方式进行传输。
  • 规则为:
    先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。

WechatIMG61.jpeg

分析

  1. 把整数里面的每一位放到数组当中
  2. 加密
  3. 把数组里面的每一位数字进行拼接,变成加密之后的结果
public class Test6{
    public static void main(String[] args){
         //1. 把整数里面的每一位放到数组当中
         int[] arr = {1,9,8,3};
         //2.加密
         //每位数加上5
         for(int i = 0;i<arr.length;i++){
               arr[i] = arr[i] + 5;
         }
         //再对10求余
         for(int i = 0;i<arr.length;i++){
               arr[i] = arr[i]%10;
         //将所有数字反转
         for(int i = 0,j = arr.length - 1;i<j;i++,j--){
               int temp = arr[i];
               arr[i] = arr[j];
               arr[j] = temp;
         //3. 把数组里面的每一位数字进行拼接,变成加密之后的结果
         int number = 0;
         for(int i = 0;i<arr.length;i++){
               number = number*10+arr[i];
               System.out.println(number);
         }
    }     
}