java作业,本人编程一言难尽

1、请依次按如下要求完成程序
1)从键盘输入n个学生成绩,将其存放到数组a中,并输出数组a查看输入是否正确。其中n从键盘输入。
2)计算数组a中所有成绩的平均值,并输出。
3)对数组a中所有成绩进行从大到小排序。
4)将数组a中成绩大于平均值的存放到数组b中,并输出数组b中所有元素。



import java.util.*;

public class Test03 {
    public static void main(String[] args) {
        final Scanner scanner = new Scanner(System.in);
        //读取学生总人数
        System.out.println("请输入学生总数:");
        final int number = scanner.nextInt();
        //读取每个学生的成绩
        final float[] scores = new float[number];
        int index = 0;
        while (index < number) {
            scores[index] = scanner.nextFloat();
            index++;
        }
        //打印每个学生的成绩
        for (float item : scores) {
            System.out.print(item);
            System.out.print(" ");
        }
        System.out.println();
        //计算成绩总和然后求平均值
        float sum = 0;
        for (float item : scores) {
            sum += item;
        }
        final float avg = sum / number;
        System.out.println("平均成绩:" + avg);
        //冒泡排序法将数组排序,从大到小
        float temp = 0;
        for (int i = 0; i < scores.length - 1; i++) {
            for (int j = 0; j < scores.length - i - 1; j++) {
                if (scores[j] < scores[j + 1]) {
                    temp = scores[j];
                    scores[j] = scores[j + 1];
                    scores[j + 1] = temp;
                }
            }
        }
        for (float item : scores) {
            System.out.print(item);
            System.out.print(" ");
        }
        System.out.println();
        //将超过平均数的成绩放入新数组,新数组的长度为总长度,但是有部分应该是未填充,只打印b_num位
        int b_num = 0;
        final float[] b = new float[number];
        for (float item : scores) {
            if (item > avg) {
                b[b_num++] = item;
            }
        }
        for (int i = 0; i < b_num; i++) {
            System.out.print(b[i]);
            System.out.print(" ");
        }
    }
}

这个哪里一言难尽啊

import java.util.Scanner;

public class Test {
    
    public static void main(String args[]) {
        //输入n个成绩,返回数组
        int[] numArr = inputNumArr(5);
        System.out.println("输入的成绩数组为:");
        for(int i=0; i<numArr.length; i++) {
            System.out.println(numArr[i]);
        }
        //计算平均值
        double avg = calDouble(numArr);
        System.out.println("平均成绩是:" + avg);
        //排序
        int[] sortNumArr = sortNumArr(numArr);
        System.out.println("排序后的成绩数组为:");
        for(int i=0; i<sortNumArr.length; i++) {
            System.out.println(sortNumArr[i]);
        }
        //大于平均值成绩提取
        int[] resultArr = getBigerAvg(numArr, avg);
        System.out.println("大于平均值成绩的数组为:");
        for(int i=0; i<resultArr.length; i++) {
            if(resultArr[i] != 0) {
                System.out.println(resultArr[i]);
            }
        }
    }
    
    public static int[] inputNumArr(int n) {
        System.out.println("请输入"+n+"个成绩");
        Scanner sc = new Scanner(System.in);
        int[] numArr = new int[n];
        for(int i=0; i<n; i++) {
            numArr[i] = sc.nextInt();
        }
        
        return numArr;
    }
    
    public static double calDouble(int[] numArr) {
        int sum = 0;
        for(int i=0; i<numArr.length; i++) {
            sum = sum + numArr[i];
        }
        return sum / numArr.length;
    }
    
    public static int[] sortNumArr(int[] numArr) {
        int temp = 0;//用于交换的临时变量
        for(int i = 0; i<numArr.length-1; i++){//外层循环用于排序排几轮
            for(int j = 0; j<numArr.length-(1+i); j++) {//内层循环用于每一大轮中进行数据交换
                if(numArr[j] > numArr[j+1]) {
                    //如果前面的数大于后面的,就进行交换
                    temp = numArr[j];
                    numArr[j] = numArr[j+1];
                    numArr[j+1] = temp;
                }
            }
        }
        return numArr;
    }
    
    public static int[] getBigerAvg(int[] numArr, double avg) {
        int[] resultArr = new int[10];
        int index = 0;
        for(int i=0; i<numArr.length; i++) {
            if(numArr[i] > avg) {
                resultArr[index] = numArr[i];
                index++;
            }
        }
        return resultArr;
    }

}

package QA;

//因为要用到输入输出,所以需要导入这个Scanner包。
import  java.util.Scanner;

public class test1 {
     public static void main(String[]args) {
         /*因为要从键盘里输入n个学生的成绩,所以创建一个数组n,用来存放学生的成绩,创建数组时,数组的容量也就是n应该是已知的,否则会出错,所以要先用键盘接收n的大小*/
        
  /*----------------------------------第(1)问--------------------------------------------------*/       
         Scanner sc=new Scanner(System.in);
         int n=sc.nextInt();  //n为学生的个数,所以n为整数
         
         //创建数组a存放学生成绩,创建浮点数数组,因为学生的成绩可能有小数
         float []a=new float[n];
         for(int i=0;i<n;i++) {
            a[i]=sc.nextFloat();
         }
         
         //输出数组a查看输入是否正确
         for(int i=0;i<n;i++) {
             System.out.print(a[i]+" ");
          }
         /*----------------------------------第(2)问--------------------------------------------------*/ 
         //计算数组中所有成绩的平均值,并输出,就是把数组中所有成绩累加求和,然后除以学生数
         //用for循环累计求和求出学生的成绩总数,定义sum变量接收成绩总数,定义avg存放平均数
         float sum=0,avg=0;
         for(int i=0;i<n;i++) {
             sum+=a[i];
         }
         avg=sum/n;
         System.out.println("\n学生的平均成绩为:"+avg);
         /*----------------------------------第(3)问--------------------------------------------------*/       
         //对数组中所有成绩进行从大到小排序用冒泡排序法,就是把小的放后面,大的放前面,运用双重循环来实现,把数组中的每个数字都和它后面的数字比较大小,
         //如果前面的数比后面的数大,就用临时变量交换掉
         for(int i=0;i<n-1;i++) {
             for(int j=i+1;j<n;j++) {
                 if(a[i]<=a[j]) {
                     float temp=a[i];
                     a[i]=a[j];
                     a[j]=temp;
                 }
             }
         }
        
         /*----------------------------------第(4)问--------------------------------------------------*/ 
         //将数组a中成绩大于平均值的存放到数组b中,并输出数组b中的所有元素
         int count=0;
         for(int i=0;i<n;i++) {
             
             if(a[i]>avg) {
                 count+=1;
             }
         }
         
    
        
         float []b= new float [count];
         for(int i=0;i<count;i++) {
             b[i]=a[i];
            
         }
         for(int i=0;i<count;i++) {
             System.out.print(b[i]+"  ");
         }
         
     }
}