gpt4 book ai didi

Java在使用while循环比较最大和最小数字及总和时出现计算错误

转载 作者:行者123 更新时间:2023-11-30 04:13:19 25 4
gpt4 key购买 nike

这是我的作业:

编写一个程序来读取非负整数列表并显示最大整数、最小整数以及所有整数的平均值。用户通过输入不是的负标记值来指示输入的结束用于查找最大、最小和平均值。平均应该是 double 类型的值,因此将使用小数部分进行计算。

我已经得到了不同的部分来使用不同的方法:方法 A 使最大值和最小值正确,而总和错误,方法 B 使总和和最大值正确,而最小值错误。下面的代码演示了方法B。注释掉了一些变量:

    public class testthis2
{
public static void main(String[] args) {

System.out.println("Enter Numbers of Nonnegative Integers.");
System.out.println("When complete, enter -1 to end input values.");
Scanner keyboard = new Scanner(System.in);
//int max = keyboard.nextInt();
int max = 0;
int min = max; //The max and min so far are the first score.
//int next = keyboard.nextInt();
int count = 0;
int sum = 0;
boolean areMore = true;
boolean run_it = false; //run it if its true
//if (max <= -1) {
// System.out.println("Thanks for playing!");
// run_it = false;
//}
// else
// run_it = true;

while(areMore) //always true
{

int next = keyboard.nextInt();
//int max = 0;
// min = max;
if (next < 0) { //if -1 is entered end loop.
areMore = false;
run_it = false;
break;
}
else //run this badboy
if(next >= max)
max = next;
else if(next <= min)
min = next;
run_it = true;
sum += next;
count++;


}
if (run_it = true)

System.out.println("The highest score is " + max);
System.out.println("The lowest score is " + min);
System.out.println("count " + count);
System.out.println("sum " + sum);
System.out.println("average " + (double)(sum/count));
System.out.println("Thanks for playing!");

}

}

当我运行此测试时,最大值、总和、计数和平均值均正确。然而,最小值是错误的,因为 0 显然没有输入。这是一个测试运行示例:

When complete, enter -1 to end input values.
37
25
30
20
11
14
-1
The highest score is 37
The lowest score is 0
count 6
sum 137
average 22.0
Thanks for playing!

任何帮助将不胜感激。谢谢!

最佳答案

最小的迭代器总是 0,因为没有小于 0 的非负整数:)

if(next <= min) // for nonnegative integer this expression will return true only for 0
min = next;

因此尝试将“min”变量初始化为Integer.MAX_VALUE。我相信它会对你有所帮助。

关于Java在使用while循环比较最大和最小数字及总和时出现计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com