2013-03-03 2 views
2

Я во вступлении к java и в тупик на этот вызов. Я искал свою книгу и полезные ссылки здесь, но не нашел ничего, что касалось того, что я делаю.Сравнение чисел в списке от входного файла

Задача состоит в том, чтобы создать список номеров в файле блокнота. Программа java должна импортировать числа, сравнивать каждый номер вместе, а затем распечатывать, какой номер в списке имеет самое низкое значение.

введите код здесь

вот мой код

import java.io.*; 
import java.util.Scanner; 

/** 
Aaron Moores 
March 2, 2013 
Input: Numbers file 
Output: Highest number, lowest number 
*/ 

public class LargenSmall 
{ 
    public static void main(String[] args) throws IOException 
    { 
    String filename;  //Numbers file 
    double lowest; 

    //Open the file 
    File file = new File("Number.txt"); 
    Scanner inputFile = new Scanner(file); 

    lowest = 0.0; 

    //Read all the values in Numbers file and find the lowest value 
    while (inputFile.hasNext()) 
    { 
    //Read a number in the file 
    double number = inputFile.nextDouble(); 
    lowest = < number; 
    } 

    //Close file 
    inputFile.close(); 

    //Print out lowest value in the list 
    System.out.println("The lowest number in your file called, " + 
          "Numbers.txt is " +lowest); 
    } 
} 

Моя проблема является выяснение того, как форматировать строку кода, которая сравнивает каждое значение для сохранения минимального значения. Если я изменил (самый низкий = самый низкий номер <) до (самый низкий = самый низкий + номер) и добавит аккумулятор, программа добавит все значения в мой файл и отобразит их, поэтому я знаю, что часть импорта работает. Я просто не понимаю, как сформулировать оператор сравнения, чтобы он отображал самое низкое значение.

, пожалуйста, помогите, я в тупик. Благодаря

ответ

0

попробовать что-то вроде этого:

while (inputFile.hasNext()) 
{ 
//Read a number in the file 
double number = inputFile.nextDouble(); 
if (number < lowest) lowest = number; 
} 

или вы могли бы попробовать:

Math.min(lowest, number); 

каждый раз в цикле.

+0

если заявление работал Как колдовство. спасибо за помощь. Теперь все в порядке, глядя на него. –

+0

Итак, я попытался отменить оператор if для моего наивысшего значения, и он не будет работать. У меня есть (число> наивысшее) наивысшее = число; и он возвращает 0.0, что и задан моим аккумулятором. помогите еще раз lokoko или кому-то еще –

+0

Что вы инициализировали наивысшим значением? – lokoko

1

Во-первых, инициализировать lowest к положительной бесконечности, так что это больше, чем любой вход:

double lowest = Double.POSITIVE_INFINITY; 

В цикле, просто возьмите меньший из lowest и вход:

lowest = Math.min(lowest, number);