直接上代码
public static void main(String[] args) {
int scores[]=new int[10] ;//定义数组存放打分的分数
int min=0;
int max=0;
int sum=0;
double average=0;
for(int i=0;i<=9;i++) {
Scanner in =new Scanner(System.in);
int x=i+1;
System.out.println("请输入第"+x+"个评委所打的分数:");//依次输入评委所打分数
int a=in.nextInt();//输入一个整数
scores[i]=a;//将输入的整数存进数组中
}
int minscores=0;
int maxscores=0;//初始化最高分与最低分
for(int i=0;i<=9;i++) {
if (scores[i]<=minscores) {
minscores=scores[i];//获得最低分
min=i;//确定最低分在数组中的位置
}
if (scores[i]>=maxscores) {
maxscores=scores[i];//获得最高分
max=i;//确定最高分在数组中的位置
}
}
int[] copy=new int[8];//要删除数组中元素,要重新定义一个数组将新数组元素放进去
int j =0;//计数器
for (int i=0;i<=9;i++) { //在放进数组元素时,跳过最高分与最低分即为删除元素
if(i==min||i==max) {
i=i+1;
}
if(i<=8) { //复制数组其他元素
copy[j]=scores[i];
}
j++;
}
for(int i=0;i<=7;i++) {
sum=copy[i]+sum; //求分数和
}
System.out.println("去掉最高分和最低分后:");
for(int i=0;i<=7;i++) {
System.out.print(copy[i]+",");//打印出去掉最高分与最低分后的成绩
}
average=sum/8;
System.out.println("这位选手成绩为"+average);
}
这段代码是为了检查之前去掉最高分与最低分是否出现错误而加上的
System.out.println("去掉最高分和最低分后:");
for(int i=0;i<=7;i++) {
System.out.print(copy[i]+",");
}
第一次编写所遇到的问题:
需要用户输入时要在开头加上:
import java.util.*;
以及声明:
Scanner in =new Scanner(System.in);
变量需要初始化,不初始化变量会报错
在for循环中要先 int i 并且在循环中用i作为数组序列时要注意数组长度;
错误代码:
for(int i=1;i<=10;i++) {
Scanner in =new Scanner(System.in);
int x=i+1;
System.out.println("请输入第"+x+"个评委所打的分数:");//依次输入评委所打分数
int a=in.nextInt();//输入一个整数
scores[i]=a;
}
print与println区别:是否换行;