Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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_If Statement_While Loop_Average_Next - Fatal编程技术网

Java 显示用户输入的最小值和最大值,并查找平均值

Java 显示用户输入的最小值和最大值,并查找平均值,java,if-statement,while-loop,average,next,Java,If Statement,While Loop,Average,Next,您好,我是一个初学者,我看过类似的查询,但我想知道是否有人可以帮助我的代码。我正在处理一个任务,从用户输入中接收数字,并打印出用户插入的最大值和最小值。我想知道如果不使用数组,我将如何做到这一点。这就是我到目前为止所做的: public void analyseLevels() { UI.clearText(); UI.printf("Insert pollution levels followed%nby a space in between%nuse 'done'

您好,我是一个初学者,我看过类似的查询,但我想知道是否有人可以帮助我的代码。我正在处理一个任务,从用户输入中接收数字,并打印出用户插入的最大值和最小值。我想知道如果不使用数组,我将如何做到这一点。这就是我到目前为止所做的:

  public void analyseLevels() {
    UI.clearText();
    UI.printf("Insert pollution levels followed%nby a space in between%nuse 
   'done' to insert:%n");
    int sum = 0;
    int count = 0;
    int input = 0;
    double av = 0;
    int min = Integer.MAX_VALUE;
    int max = Integer.MIN_VALUE;
        while(UI.hasNextInt()){
        int  amt = UI.nextInt();
    // Initialise variables
    // Prompt for input
    // Loop, reading numbers and updating variables
    // Compute and print out the analysis
        if( amt > 0){

        if(amt > max){
          max = amt;

        }

        if(amt < min){
          min = amt;

        }

        if(amt >= 120){
          UI.printf("Dangerous level: %dppb%n", amt);
        }

        sum += amt;
        count++;
      }

        av = ( sum ) / ( count );
        UI.println( "Average = " + av );
        UI.println( "Max = " + max );
        UI.println( "Minimum = " + min );

   }
    UI.nextLine(); // to clear out the input
}
public void分析级别(){
UI.clearText();
UI.printf(“在%n之后插入污染水平,空格在%n和%n之间使用
“完成”以插入:%n“;
整数和=0;
整数计数=0;
int输入=0;
双av=0;
int min=整数最大值;
int max=整数的最小值;
while(UI.hasNextInt()){
int amt=UI.nextInt();
//初始化变量
//提示输入
//循环、读取数字和更新变量
//计算并打印分析结果
如果(金额>0){
如果(金额>最大值){
最大值=金额;
}
如果(金额<分钟){
最小=金额;
}
如果(金额>=120){
UI.printf(“危险等级:%dppb%n”,金额);
}
总和+=金额;
计数++;
}
av=(总和)/(计数);
UI.println(“平均数=”+av);
UI.println(“Max=”+Max);
UI.println(“最小值=”+min);
}
UI.nextLine();//清除输入
}

将println/avergae计算语句从循环中取出,如:

 }//while loop ends
 av = ( sum ) / ( (double)count);
 UI.println( "Average = " + av );
 UI.println( "Max = " + max );
 UI.println( "Minimum = " + min );

您将while循环结束括号
}
放错了


在计算平均值之前,先将while循环结束括号置于括号内

当前方法有什么问题?这里有一个整数除法问题
av=(sum)/(count),应该更像是
av=(总和)/(双重)计数)现在有什么问题?任何错误异常?您仍然没有使用数组!!!那么问题出在哪里呢?在计算平均值之前,先把你的while循环结束括号放好,然后检查你是否得到了正确的答案??非常感谢!我把av=(总和)/(计数);UI.println(“平均数=”+av);UI.println(“Max=”+Max);UI.println(“最小值=”+min);在while循环之外,它按照我希望的方式工作:)@Prashant