题目要求:
我们学院经常组织各项技能比赛,例如电脑文化节中Flash作品比赛,台下有10位评委来评判参赛者的作品,评委打分:0-100分的整数,参赛者最终得分是去掉一个最高分,去掉一个最低分,所剩分数的平均分。
要求设计一个软件,可以连续输入10位评委的成绩,并且可以无限次计算参赛者的成绩(提示,不退出即可继续输入下一批成绩)
输入格式:
90 100 80 70 65 86 77 89 91 73
输出格式:
100 65 82
输入样例:
在这里给出一组输入。例如:
90
100
80
70
65
86
77
89
91
73
输出样例:
在这里给出相应的输出。例如:
100 65
82
import java.util.Scanner;
public class Main{
public static void main(String []args){
Scanner s = new Scanner(System.in);
int a[]=new int [10];
int max=0;
int min=0;
int sum=0;
int res;
while(true)
{
for(int i=0;i<10;i++)
{
a[i]=s.nextInt();
if(i==0)
{
max = a[0];
min = a[0];
sum = 0;
}
else
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}
sum+=a[i];
if(i==9)
{
res = sum - max - min
res/=8;
System.out.println(max+" "+min);
System.out.print(res);
}
}
}
}
}
本题需要注意的就是可以无限次计算参赛者的成绩(提示,不退出即可继续输入下一批成绩),这里用while(true)来实现的;
同时可以将min,max,sum,res的定义放到for循环中这样就不用在下一组输入时进行重置。
res = sum - max - min
res/=8;
也完全可以用int res =(int)
((sum-max-min)/8);来代替更简洁