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