BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s[]=br.readLine().split(" ");
int max=Integer.parseInt(s[0]);
int min=Integer.parseInt(s[0]);
String tmp;
String tmp1;
int maxIndex=0;
int minIndex=0;
double sum=0.0;
for (int i = 1; i < s.length; i++) {
int value=Integer.parseInt(s[i]);
if(maxmax=value;
maxIndex=i;
}
if(min>value){
min=value;
minIndex=i;
}
}
tmp=s[s.length-1];
s[s.length-1]=String.valueOf(max);
s[maxIndex]=tmp;
tmp1=s[s.length-2];
s[s.length-2]=String.valueOf(min);
s[minIndex]=tmp1;
for (int i = 0; i "%.2f",sum/5));
输入77 78 79 77 76 75 74
输入76.40,但答案是76.60
这个题是想把输入数据中最大值交换到最后,最小值交换到倒数第二的位置,然后计算排除掉最大最小两个数的剩余数的平均值。是吗?
本次输入的最小数在最后,最大数交换到最后以后,最小数换位置了,但minIndex没同步修改,导致交换最小数位置时,换了错误的数。前面的5个数偏小1,所以答案偏小0.2。
输入:
77 78 79 77 76 75 74
交换最大数后:
77 78 74 77 76 75 79
交换最小数后(正常应该第3个和第6个数交换):
77 78 74 77 76 79 75