要求用java程序回答

求大神解决
2025-03-18 08:07:46
推荐回答(1个)
回答(1):

import java.util.Scanner;
public class test{
public static void main(String[] args) {
try {/**注意:输入的时候可能输入的不是数字,这样会产生异常(运行中错误),需要处理,
我这个就是你输入不是数字,那么直接输出:输入错误,程序结束!然后退出程序*/
int n = 0;
double a[] = new double[10000],sum=0,temp,avg=0,input=0;
while (1==1) {
System.out.print("请输入第"+(n+1)+"个学生成绩:");
input = new Scanner(System.in).nextDouble();
if (input < 0|| input > 100) {
break;
}else{
a[n] = input;
sum += a[n];
n++;
}
}
avg = sum*1.0 / n;
System.out.println("-------------------");
System.out.println("这"+n+"个学生成绩如下:");
for (int i = 0; i < n; i++) {
System.out.print(a[i]+"\t");
}
System.out.println("\n-------------------");
System.out.println("这"+n+"个学生成绩由小到大排序是:");
//注意:我用的是冒泡排序,Java中数组升序也可以使用Arrays.sort(数组名)这个方法
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (int i = 0; i < n; i++) {
System.out.print(a[i]+"\t");
} System.out.println("");
System.out.println("-------------------");
System.out.println("这"+n+"个学生成绩由大到小排序是:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] < a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (int i = 0; i < n; i++) {
System.out.print(a[i]+"\t");
}
System.out.println("\n-------------------");
System.out.println("这"+n+"个学生的平均分是:"+avg+"分!");
} catch (Exception e) {
System.out.println("输入错误,程序结束!");
}
}
}