Java 需要帮助找到平均值吗

Java 需要帮助找到平均值吗,java,Java,我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢 public static void main(String[] args) { Scanner scan = new Scanner(System.in); int sum = 0; int inputNumber; int numberExams; float averageScore; double max = 0; d

我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢

public static void main(String[] args) {


   Scanner scan = new Scanner(System.in);

   int sum = 0;
   int inputNumber;
   int numberExams;
   float averageScore;
   double max = 0; 
   double min = 101;      


   System.out.println("Enter the total number of exams you want a average");
   numberExams = scan.nextInt();

   System.out.println("Please enter " + numberExams + " numbers:");

   for(int i = 1; i<=numberExams ;i++){          
    inputNumber = scan.nextInt();
    sum = sum + inputNumber;
    System.out.println();

   if(inputNumber > max){
    max = inputNumber;
}
   if(inputNumber < min){
    min = inputNumber;
}
   if(inputNumber > -1 && inputNumber < 101){
    sum = sum + inputNumber;
}
   else{
    System.out.println("You entered a number that wasn't in the range of 0 to 100");
}
} 


    averageScore = sum / numberExams;

System.out.println( "The Max Exam Score is: " + max );
System.out.println( "The Minimum Exam Score is: " + min );    
System.out.println("The Average Exam Score is: " + averageScore );
}
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
整数和=0;
输入整数;
int numberxams;
浮动平均分数;
双最大值=0;
双最小=101;
System.out.println(“输入想要平均的考试总数”);
numberxams=scan.nextInt();
System.out.println(“请输入”+numberxams+“数字:”);
对于(int i=1;i max){
最大值=输入编号;
}
if(输入编号<最小值){
最小值=输入编号;
}
如果(inputNumber>-1&&inputNumber<101){
总和=总和+输入数;
}
否则{
System.out.println(“您输入的数字不在0到100之间”);
}
} 
averageScore=总和/数量ams;
System.out.println(“最大考试分数为:“+Max”);
System.out.println(“最低考试分数为:“+min”);
System.out.println(“平均考试分数为:“+averageScore”);
}
}

在分配到
min
max
之前,您应该首先检查您的范围

这项工作:

public static void main(String[] args) {
  Scanner scan = new Scanner(System.in);

  int sum = 0;
  double averageScore;
  double max = 0;
  double min = 101;

  System.out.println("Enter the total number of exams you want a average");
  final int numberExams = scan.nextInt();

  System.out.println("Please enter " + numberExams + " numbers:");

  for (int i = 0; i < numberExams; ++i) {
    final int inputNumber = scan.nextInt();

    if (inputNumber >= 0 && inputNumber <= 100) {
      System.out.println();

      if (inputNumber > max) {
        max = inputNumber;
      }
      if (inputNumber < min) {
        min = inputNumber;
      }
      sum += inputNumber;
    }
    else {
      System.out.println("You entered a number that wasn't in the range of 0 to 100");
    }
  }

  averageScore = sum / numberExams;

  System.out.println("The Max Exam Score is: " + max);
  System.out.println("The Minimum Exam Score is: " + min);
  System.out.println("The Average Exam Score is: " + averageScore);
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
整数和=0;
双平均分;
双最大值=0;
双最小=101;
System.out.println(“输入想要平均的考试总数”);
final int numberxams=scan.nextInt();
System.out.println(“请输入”+numberxams+“数字:”);
对于(int i=0;i=0&&inputNumber最大值){
最大值=输入编号;
}
if(输入编号<最小值){
最小值=输入编号;
}
总和+=输入数;
}
否则{
System.out.println(“您输入的数字不在0到100之间”);
}
}
averageScore=总和/数量ams;
System.out.println(“最大考试分数为:“+Max”);
System.out.println(“最低考试分数为:“+min”);
System.out.println(“平均考试分数为:“+averageScore”);
}

请注意,您仍然存在一个问题,即如果收到无效输入,您将计算错误的分数。你可以用几种不同的方法来处理。一种方法是在
else
块内递减
i

您在
for循环中执行了两次
sum=sum+inputNumber

此外,您需要将
int
s转换为
double
,以计算平均值:

double average = ((double) sum) / numberExams;

检查输入无效条目时
min
max
的情况。(此外,在输入错误和输入正确时,您总是增加
numberxams
)。您将输入添加到总和中两次。您应该计算有效输入的数量。也许你想要
averageScore=(双)和/numberxams另外,在除以2个整数时要小心。例如,15/4不能给出实际平均值。试着用替身。