[英]double precision numbers into an array, then sort and display number from lowest to highest
[英]How to display the highest and lowest numbers input by the user?
該程序要求用戶輸入他們想要的任意數量的人。 然后程序會詢問每個人的身高(不是以英尺為單位,而是以整數為單位,例如 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);
您需要將這些檢查放在循環內的number
、 highest
和lowest
之間。
就目前而言,您只檢查已輸入的最新number
。
此外,您不需要計算運行平均值。 所以,把它移到循環之外。
for (int i = 0; i < n; i++) {
System.out.println("enter the height of each person");
number = input.nextInt();
sum += number;
if (number > highest) {
highest = number;
} else if (number < lowest) {
lowest = number;
}
}
average = sum / n;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.