Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Java] Мин/Макс число


Автор: stat007 27.9.2009, 21:27
Помогите закончить программу.
Вводится определённое какое-нибудь число, затем вводится ряд чисел (ввод заканчивается нулём), из которых необходимо выбрать максимально приблежённое к введённому числу в самом начале и максимально отдалённое от того числа.
Код

import java.io.Console;

public class Test2
{
  private static final Console console = System.console();
  
  public static void main(String[] args) throws Exception
  {
    int a = readNumber("Enter number: ");
    System.out.println("Namber = "+a);


    boolean stop=false;
    int i=0;
    System.out.println("Enter numbers: ");
    do
    {
        i = readNumber("");
        if(i>1)
            System.out.println("Next numbers ");            
        else
        {
            System.out.println("End. ");    
            stop = true;
        }
    }
    while (stop==false);
  }

public static int readNumber(String promt)
  {

    boolean isNumberRead = false;
    int i = -1;
    do
    {
      String s = console.readLine(promt);
      try
      {
        i = Integer.parseInt(s);
        isNumberRead = true;
      }
      catch(NumberFormatException e)
      {
        console.printf("'%s' is not valid number%n", s);
      }
    }
    while(!isNumberRead);
    return i;
  }
}

Автор: Dancer 28.9.2009, 08:03
Дам лишь подсказку:
private static int max=-1;
private static int min=Integer.MAX_VALUE;
private static int maxValue, minValue;
private static int a;

.......
i = Integer.parseInt(s);
int tmp = Math.abs(a-i);
if(tmp>max) {
    max=tmp;
    maxValue = i;
}

if(tmp<min) {
    min=tmp;
    minValue = i;
}
.........


Автор: stat007 28.9.2009, 22:30
Dancer, Немогу разобраться никак! Помогите!!!

Автор: Dancer 29.9.2009, 14:07
Код

import java.io.Console;

public class Test2
{
  private static final Console console = System.console();
  private static int inputNumber = 0;
  private static int max = Integer.MIN_VALUE;
  private static int min = Integer.MAX_VALUE;
  private static int maxValue,minValue;

  public static void main(String[] args) throws Exception
  {
    inputNumber = readNumber("Enter number: ");
    System.out.println("Number = " + inputNumber);


    boolean stop=false;
    int i=0;
    System.out.println("Enter numbers. The end of enter is 0 number.");
    System.out.println("Enter numbers: ");
    do
    {
        i = readNumbers("");
        if(i!=0)
            System.out.println("Next numbers ");            
        else
        {
            System.out.println("End. ");    
            stop = true;
        }
    }
    while (stop==false);

    System.out.println("maxValue: " + maxValue);
    System.out.println("minValue: " + minValue);

  }

public static int readNumbers(String promt)
  {

    boolean isNumberRead = false;
    int i = -1;
    do
    {
      String s = console.readLine(promt);
      try
      {
        i = Integer.parseInt(s);
        if(i == 0) { return 0;}

        int tmp = Math.abs(inputNumber - i);

        if(tmp > max) {
            max = tmp;
            maxValue = i;
        }
        if(tmp < min) {
            min = tmp;
            minValue = i;
        }

        isNumberRead = true;
      }
      catch(NumberFormatException e)
      {
        console.printf("'%s' is not valid number%n", s);
      }
    }
    while(!isNumberRead);
    return i;              
  }

public static int readNumber(String promt)
  {

    boolean isNumberRead = false;
    int i = -1;
    do
    {
      String s = console.readLine(promt);
      try
      {
        i = Integer.parseInt(s);
        isNumberRead = true;
      }
      catch(NumberFormatException e)
      {
        console.printf("'%s' is not valid number%n", s);
      }
    }
    while(!isNumberRead);
    return i;
  }

}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)