第一个问题:为什么scores[0]=0,
第二个问题为什么当int max = 0;
int min = 100;就能够运行得出结果?
int max = scores[0];
int min = scores[0]就不行
第一次出错代码
import java.util.Scanner;
/*
有10个评委给参加编程比赛的某个选手的作品打分,从键盘输入10个评委的分数,并存储到一维数组中。
然后求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)
*/
public class ArrayExer7 {
public static void main(String[] args) {
//声明一个数组,长度为10,用来存储分数
int[] scores = new int[10];
Scanner input = new Scanner(System.in);
int max = scores[0];
int min = scores[0];//分数范围[0,100]
double sum = 0;
for (int i = 0; i < scores.length; i++) {
System.out.print("请输入第" + (i+1) + "个评委的分数:");
scores[i] = input.nextInt();
sum += scores[i];
if(scores[i] > max){
max = scores[i];
}
if(scores[i] < min){
min = scores[i];
}
}
//另一个循环,遍历输出
System.out.println("10个评委的分数如下:");
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+" ");
}
System.out.println();
System.out.println("最高分:" + max);
System.out.println("最低分:" + min);
System.out.println("平均分:" + (sum-max-min)/(scores.length-2));
}
}
第二次正确代码:
```java
import java.util.Scanner;
/*
有10个评委给参加编程比赛的某个选手的作品打分,从键盘输入10个评委的分数,并存储到一维数组中。
然后求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)
*/
public class ArrayExer7 {
public static void main(String[] args) {
//声明一个数组,长度为10,用来存储分数
int[] scores = new int[10];
Scanner input = new Scanner(System.in);
int max = 0;
int min = 100;//分数范围[0,100]
double sum = 0;
for (int i = 0; i < scores.length; i++) {
System.out.print("请输入第" + (i+1) + "个评委的分数:");
scores[i] = input.nextInt();
sum += scores[i];
if(scores[i] > max){
max = scores[i];
}
if(scores[i] < min){
min = scores[i];
}
}
//另一个循环,遍历输出
System.out.println("10个评委的分数如下:");
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+" ");
}
System.out.println();
System.out.println("最高分:" + max);
System.out.println("最低分:" + min);
System.out.println("平均分:" + (sum-max-min)/(scores.length-2));
}
}
第一次运行结果:
10个评委的分数如下:
12 21 58 66 558 55 58 25 86 8
最高分:558
最低分:0
平均分:48.625
第二次运行结果:
10个评委的分数如下:
5 86 86 86 87 98 87 89 84 54
最高分:98
最低分:5
平均分:82.375