2013-03-10 63 views
0

我需要打印此文件中的最大和最小數字...我嘗試了一切,我似乎無法使它工作。我是初學者,請幫助閱讀文件並在java中打印最大和最小數字

public class Banck { 

    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 
     System.out.println("Welcome to JEEEZBANK"); 

     final int NUM_TO_QUIT = -99; 

     String userin ; 
     int num; 

     System.out.println("Enter a file ending with .txt"); 
     Scanner scan = new Scanner(System.in); 
     userin = scan.nextLine(); 

     // create file 
     PrintWriter file = new PrintWriter(userin); 

     for(int i=1; i<5; i++){ 
      System.out.println("enter first number "+i +" or -99 to quit"); 
      num = scan.nextInt(); 
      if(num == NUM_TO_QUIT){ 
       System.out.println("bye"); 
       System.exit(0); 
      } 
      file.println(num); 

     } 
     file.close(); 
     // read file and print smallest and biggest number 
     Scanner read = new Scanner(file); 
     while(read.hasNext()){ 

      // add the numbers to the array 
      int[] numlist = {num}; 
      // print the biggest and smallest number inside the numlist array. 
     } 
    } 
} 
+1

看看[Math.min](http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#min(int,%20int))和[Math.min的.max](http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#max(INT,%20int)) – MadProgrammer 2013-03-10 04:30:59

回答

2

一種方法是創建兩個變量,其中一個保持當前的最低數量的軌跡和其他保持當前最高的曲目。對於文件中的每個數字,比較它是否低於當前最低數字,如果是,則替換它,或者如果它高於當前最高數字(並且如果更換它)。

實際上,您可以比較和查找最小和最大數字,而用戶輸入它們而不是單獨的循環,因爲我認爲它們是相同的數字。

1

不要保留一個列表。使用兩個變量來跟蹤最大的最大值&分鐘。

int min = Integer.MAX_VALUE; 

int max = 0; 

if(num < min) min = num; 

if(num > max) max = num; 

假設NUM是從在上述迴路中的文件正被讀取的整數。

相關問題