显示用户输入的最小值和最大值并找到平均值
Posted
技术标签:
【中文标题】显示用户输入的最小值和最大值并找到平均值【英文标题】:display min and max value of user input and also find the average 【发布时间】:2015-04-13 05:52:17 【问题描述】:您好,我是初学者,我看过类似的查询,但我想知道是否有人可以帮助我编写代码。我正在分配从用户输入接收数字并打印出用户插入的最大值和最小值。我想知道如何在不使用数组的情况下做到这一点。这是我目前所拥有的:
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
【问题讨论】:
您目前的方法有什么问题?av = ( sum ) / ( count );
这里有一个整数除法问题,应该更像av = ( sum ) / ( (double)count );
现在有什么问题?任何错误异常?
你仍然没有使用数组!那是什么问题??
在计算平均值之前将您的 while 循环结束括号放入并检查您是否得到正确答案??
非常感谢!我把 av = ( sum ) / ( count ); UI.println("平均 = " + av); UI.println("最大值 = " + 最大值); UI.println("最小值 = " + min );在 while 循环之外,它按我想要的方式工作:) @Prashant
【参考方案1】:
你把 while 循环结束括号 放错了。
在计算平均值之前放置你的 while 循环结束括号
【讨论】:
【参考方案2】:将您的 println/avergae 计算语句带出循环,例如:
//while loop ends
av = ( sum ) / ( (double)count);
UI.println( "Average = " + av );
UI.println( "Max = " + max );
UI.println( "Minimum = " + min );
【讨论】:
以上是关于显示用户输入的最小值和最大值并找到平均值的主要内容,如果未能解决你的问题,请参考以下文章
计算用户在Java中输入的一系列数字的总和、算术平均值、最小值和最大值? [关闭]