Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java代码,查找浮点数的最小值、最大值和平均值_Java - Fatal编程技术网

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())