题解
测试点3有毒…
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
String regex = "-?[0-9]*(.[0-9]{0,2})?";
double sum = 0, t = 0;
int k = 0;
for(int i = 0; i < n; ++i){
String s = cin.next();
//if(s.equals("-.") || s.equals(".")) {k++; continue;}
if(!s.equals("-") && !s.equals(".") && s.matches(regex) && Math.abs(t = Double.parseDouble(s)) <= 1000.0){
sum += t;
k++;
}else{
System.out.printf("ERROR: %s is not a legal number\n", s);
}
}
if(k == 0){
System.out.println("The average of 0 numbers is Undefined");
}else if(k == 1){
System.out.printf("The average of 1 number is %.2f\n", sum);
}
else{
System.out.printf("The average of %d numbers is %.2f\n", k, sum / k);
}
}
}