java - 如何显示用户输入的最高和最低数字?
问题描述
该程序要求用户输入他们想要的任意数量的人。然后程序会询问每个人的身高(不是以英尺为单位,而是以整数为单位,例如 5、7、10 等)。然后程序会显示所有这些人的平均身高以及这些人中最高和最短的身高。
平均高度部分有效,但我的问题是尝试显示输入的最高高度和输入的最短高度。
package loop2;
import java.io.Reader;
import java.text.DecimalFormat;
import java.util.Random;
import java.util.Scanner;
public class PgmTemplate {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
int sum =0;
int number=0, n;
int average = 0;
int highest= 0;
int lowest= 0;
lowest = number;
System.out.println("enter the number of people");
n = input.nextInt();
for(int i = 0; i < n; i++) {
System.out.println("enter the height of each person");
number = input.nextInt();
sum += number;
average = sum / n;
}
if(number > highest) {
highest = number;
}else if(number < lowest) {
lowest = number;
}
System.out.println("the average height is "+ average);
System.out.println("the tallest person is " + highest);
System.out.println("the shortest person is " + lowest);
}
}
解决方案
无需在每次输入后计算平均值。
我会这样做:
lowest = Integer.MAX_VALUE
...
for (int i = 0; i < n; i++) {
int number = scanner.nextInt();
sum += number;
if (number > highest)
highest = number;
if (number < lowest)
lowest = number;
}
然后在获得所有输入后,您就拥有了所需的东西:
System.out.println("the average height is " + (sum / n));
System.out.println("the tallest person is " + highest);
System.out.println("the shortest person is " + lowest);
推荐阅读
- java - 移动到新服务器后的 Java.lang.NoClassDefFoundError
- scala - Spark Scala 地图因自定义功能而失败
- file - 在 nuxtjs 中集成一个小部件
- kotlin - GraphQL 服务器端流式实现
- asp.net-core - 来自全局错误处理程序的控制器和操作
- plot - Octave 中 3d 绘图的数据文件格式
- python - 将 docx 转换为文本文件并将它们保存在同一文件夹中
- html - 如何用 css 制作响应式三角形
- sql - 仅根据计算值选择某些行
- javascript - 如何在 vuejs 或任何其他解决方案上解决这个数组问题?