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

import java.io.*;

public class jem3
{
    public static void main(String []args)
    {
        BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in ));        
        int high=0;
        int lowest=1;
        int num=0;
        int A=0;

        System.out.println("Enter number");

        for(int a=0;a<10;a++)
        {
            try
            {
                num=Integer.parseInt(dataIn.readLine());
            }
            catch(IOException e)
            {
                System.out.println("error");
            }

            if(num>high)
            {
                high=num;
            }

            if(num>=A)
            {
                A=lowest;
            }                        
        }

        System.out.println("highest is:"+  high);
        System.out.println("lowest is: "+A);
    }
}
0
jose 5 Мар 2011 в 07:02
Перестановка тегов javascript -> java.
 – 
jpsimons
5 Мар 2011 в 07:04

4 ответа

Какова цель A? Вы также не изменяете lowest. Вы близки, попробуйте это:

num = ...
if ( num > max ) max = num;
if ( num < min ) min = num;

System.out.println("Highest: " + max);
System.out.println("Lowest: " + min);
1
Nate W. 5 Мар 2011 в 07:08

Вы на правильном пути для захвата highest. вам нужно применить аналогичную логику для lowest.

-1
Bala R 5 Мар 2011 в 07:10
import java.io.*;   
public class jem3
{
    public static void main(String []args)
    {
    BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in ));     
    int high;
    int lowest;
    int num;
    System.out.println("Enter number");

    num=Integer.parseInt(dataIn.readLine());
    lowest = highest = num;

    for(int a=0;a<10;a++)
    {
        try

            {

                num=Integer.parseInt(dataIn.readLine());
            }
            catch(IOException e)
            {
                System.out.println("error");
            }


            if(num>high)
            {
                high=num;
            }
            if(num<lowest)
            {
                lowest=num;
            }

    }
    System.out.println("highest is:"+  high);
    System.out.println("lowest is: "+lowest);


    }
}

Я добавил код после прочтения первой строки, чтобы установить высокий и самый низкий, поэтому, если пользователь даст вам 10 чисел «9», он выведет самое низкое число, равное «9», а не 1, как это было бы (аналогично высокому).

-1
fazo 5 Мар 2011 в 07:15
import java.io.*;

public class jem3{

  public static void main(String []args){
  BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));        
    int high=0;
    int lowest=0;
    int num=0;
    boolean test = true;

    System.out.println("Enter number");

    for(int a=0;a<10;a++)
    {
        try
        {
            num=Integer.parseInt(dataIn.readLine());
        }
        catch(IOException e)
        {
            System.out.println("error");
        }

        if(num>high)
        {
            high=num;
        }
        //add an initial value to 'lowest'
        if (test)
            lowest = num;
            test = false;

        if(num < lowest)
        {
            lowest = num;
        }                        
    }

    System.out.println("highest is:"+  high);
    System.out.println("lowest is: "+ lowest);
    }
}
-1
Dave 1 Фев 2014 в 09:19