Java 需要帮助找到平均值吗
我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢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
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不能给出实际平均值。试着用替身。