首页 > 解决方案 > 如何显示用户输入的最高和最低数字?

问题描述

该程序要求用户输入他们想要的任意数量的人。然后程序会询问每个人的身高(不是以英尺为单位,而是以整数为单位,例如 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);
    }
}

标签: java

解决方案


无需在每次输入后计算平均值。

我会这样做:

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

推荐阅读