Что я должен сделать, чтобы отобразить наибольшее и наименьшее число с помощью цикла? - PullRequest
0 голосов
/ 07 ноября 2011

Я понятия не имею, как отобразить наибольшее и наименьшее число после того, как пользователь введет -1.

Примечание: мне также нужно отобразить сумму всех этих чисел и среднее значение этогосумма.

Вот мой код:

public static void main(String[] args) {
    // store
    int cnt = 0;
    int acumulator = 0;
    int larger = 0;
    int smaller = 0;
    int number;
    // inputs
    System.out.println("enter the number all the number");
    Scanner kb = new Scanner(System.in);
    number = kb.nextInt();
    // loop
    while (number != -1) {
        acumulator += number;
        number = kb.nextInt();
        cnt++;//
    }
    double average = (acumulator / cnt);
    System.out.println(" The total of your number is=" + acumulator);
    System.out.println(" The average of your number is=" + average);
}

Ответы [ 4 ]

1 голос
/ 07 ноября 2011

Я бы сделал следующие изменения:

  • используйте цикл for вместо цикла while (вам нужно инициализация, условие и итерация)
  • используйте API JDK больше - Math.min () и Math.max ()
  • правильно пишут "аккумулятор"
  • удалить все переменные, которые вы не используете (cnt)

Попробуйте это:

public static void main(String[] args) {
    int accumulator = 0;
    int largest = Integer.MIN_VALUE;
    int smallest = Integer.MAX_VALUE;
    int count = 0;
    // inputs
    System.out.println("enter a number (-1 to end)");
    Scanner kb = new Scanner(System.in);
    for(int number = kb.nextInt(); number != -1; number = kb.nextInt()) {
        count++;
        accumulator += number;
        largest = number > largest ? number : largest;
        smallest = number < smallest ? number : smallest;
    }
    double average = (accumulator / count);
    System.out.println(" The total of your numbers is=" + accumulator);
    System.out.println(" The average of your numbers is=" + average);
    System.out.println(" The largest of your numbers is=" + largest);
    System.out.println(" The smallest of your numbers is=" + smallest);
}

К вашему сведению: вместо троичных операторов можно использовать Math.min / max, но приведенный выше простейший java, который позволит достичь результата.

1 голос
/ 07 ноября 2011

Похоже на школьную работу, но вы могли бы сделать переменную и проверить в то время, пока введенный номер больше или меньше, чем сохраненная переменная.

if(input > max)
  max = input;

И

if(input < min)
  min = input;
0 голосов
/ 07 ноября 2011

В основном вам нужно проверять все номера друг с другом. Допустим, у нас есть номера 1,2 и 3

вот код:

public static void main(String[] args){
    int one=1;
    int two=2;
    int three=3;
    if(three>one){
     if(three>two){
       System.out.println("three is biggest");
     }
   }
   if(two>one){
    if(two>three){

   }
}

и т. Д. И т. Д.

Я думаю, у тебя есть идея

0 голосов
/ 07 ноября 2011

Вам нужно использовать оператор if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...