java代码,查找浮点数的最小值、最大值和平均值
我写了下面的代码,除了它从不执行最后一个循环,所以输入的最后一个值永远不会计算到最小值/最大值/平均值之外,一切都正常。 知道我哪里出错了吗java代码,查找浮点数的最小值、最大值和平均值,java,Java,我写了下面的代码,除了它从不执行最后一个循环,所以输入的最后一个值永远不会计算到最小值/最大值/平均值之外,一切都正常。 知道我哪里出错了吗 import java.util.Scanner; public class Program4_JohnHuber { public static void main(String[] args) { Scanner input = new Scanner (System.in); double total = 0; //doubl
import java.util.Scanner;
public class Program4_JohnHuber {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
double total = 0;
//double numbers = 0;
int count = 1;
double largest = 0;
double smallest = Double.MAX_VALUE;
double average = 0;
System.out.print ("Please enter the grades, (Press enter when finished): ");
{
while (input.hasNextDouble()&& count<5)
{
double entered = input.nextDouble();
total = total + entered;
//count++;
//double average = 0;
if (count > 0)
{
average = total/count;
}
if (entered > largest)
{
largest = entered;
}
if (entered < smallest)
{
smallest = entered;
}
count++;
}
}
System.out.printf ("Your average grade is %3.2f,\n", average);
System.out.printf ("Your highest grade is %3.2f \n", largest);
System.out.printf ("Your lowest grade is %3.2f \n", smallest);
}
}
import java.util.Scanner;
公共课程4_JohnHuber{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
双倍合计=0;
//双数=0;
整数计数=1;
双最大=0;
最小值加倍=最大值加倍;
双平均=0;
System.out.print(“请输入成绩,(完成后按enter键):”;
{
while(input.hasNextDouble()&&count 0)
{
平均数=总数/计数;
}
如果(输入>最大值)
{
最大=输入;
}
如果(输入<最小值)
{
最小=输入;
}
计数++;
}
}
System.out.printf(“您的平均成绩为%3.2f,\n”,平均分);
System.out.printf(“您的最高分数为%3.2f\n”,最大);
System.out.printf(“您的最低分数为%3.2f\n”,最小);
}
}
您的程序中有两个错误(假设您打算输入5个数字):
count
指示您已经输入的分数。在您输入任何等级之前,您输入了多少等级?这是count
应该具有的值,但您已将其初始化为错误的值,而:
while (input.hasNextDouble() && count<5)
这会首先检查count
,当你有足够的分数时,会立即退出循环,而不是寻找更多的输入。你是如何输入数字的?都在同一行?无论是在同一行还是在每个数字后输入,似乎都会删除最后输入的数字。谢谢!我让计数=0,然后将其更改为1,以尝试解决最后一次输入下降的问题。再次感谢您的帮助和善意的解释!
while (count < 5 && input.hasNextDouble())