Readfile max和min number

时间:2014-10-15 01:42:55

标签: java max min readfile

我真正需要帮助处理我正在处理的问题。我正在尝试在.txt文件中找到最大和最小数字,该文件可以是读取文件所需的任何数字,然后打印出最大和最小数字。 readfile工作正常,唯一的问题是我只得到0回答答案。

我的代码:

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

public class LargeSmall
{
   public static void main(String[] args) throws IOException
   {
      //gets filename
      Scanner keyboard = new Scanner(System.in);
      System.out.println("Enter the name of the file: ");
      String filename = keyboard.nextLine();

      //opens file
      File file = new File(filename);
      Scanner inputFile = new Scanner(file);

      //place holders for varibales
      int val = 0;
      int max = Integer.MIN_VALUE;
      int min = Integer.MAX_VALUE;

      //to read all lines of file
      while (inputFile.hasNext())
      {
         //gets min and max number
         int number = inputFile.nextInt();

         if ( val > max)
         {
         max = val;
         }

         if ( val < min)
         {
         min = val;
         }
      }
   //Close file
   inputFile.close();

   //Print out lowest value in the list and highest
   System.out.println("Min number is: " +min);
   System.out.println("Max number is: " +max);                   
   }
}

不明白我做错了什么,非常感谢任何提示或帮助!

2 个答案:

答案 0 :(得分:1)

您正在从文件中获取该号码,但之后您再也不会使用它了。

     int number = inputFile.nextInt();

     if ( number > max)
     {
         max = number ;
     }
     if ( number < min)
     {
         min = number ;
     }

或者不是将val更改为数字,而是更改行:

int number = inputFile.nextInt();

val = inputFile.nextInt();

答案 1 :(得分:0)

val = inputFile.nextInt();

而不是

int number = inputFile.nextInt();

因为您读取了每一行并将其分配给名为number的新变量。但是你正在检查val变量。所以它给出了结果0。