题目
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
分析
- 用一个数组1装名字
- 用一个数组2装数字
- 再用一个数组3装数字
- 排序数组3
- 利用数组3的最小值,得到要输出的i;
代码
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[]args) throws IOException{
BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
int n= Integer.parseInt(sc.readLine());
String[]name = new String[n];
int []number = new int[n];
int sum = 0;
int []num = new int[n];
int []num1 = new int [n];
for(int i=0;i<n;i++){
String []s = sc.readLine().split(" ");
name[i] = s[0];
number[i] = Integer.parseInt(s[1]);
sum = sum + number[i];
}
int avg = sum/(n*2);
for(int i=0;i<n;i++){
num[i] = Math.abs(number[i]-avg);
num1[i] = Math.abs(number[i]-avg);
}
Arrays.sort(num);
for(int i=0;i<n;i++){
if(num[0]==num1[i]){
System.out.print(avg+" "+name[i]);
break;
}
}
}
}