2016-03-05 87 views
-2

我是Java的初學者。我寫這段代碼在CMD上進行編譯。多行的標準輸入

public class AA { 
    public static void main (String[] args){ 
     int line=Integer.parseInt(args[0]); 
     int i=0; 
     while(i<line){ 
      double first_input = StdIn.readDouble(); 
      double second_input = StdIn.readDouble(); 
      double third_input = StdIn.readDouble(); 
      double average = first_input * 0.2 + second_input * 0.4 + third_input * 0.4; 
      line-=1 
      StdOut.println(average+"is.."); 
     } 
    } 
} 

雖然我在尋找這樣的:

2 15 22 
2 5 77 
15,2 is... 
33,2 is... 

我得到的輸出僅僅是這樣的:

2 15 22 
    15,2 is... 
    2 5 77 
    33,2 is... 

我嘗試過很多方法,但我沒有得到解決。有一些我看不到的技巧嗎?

回答

1

根據我的理解,我會將計算值添加到變量中,然後一旦輸入了所有值,就會顯示存儲的值。

當然有多種方式來實現這個目標,但也許一個簡單的方法是使用StringBuffer。

public static void main(String[] args) 
{ 
    int line = Integer.parseInt(args[ 0 ]); 
    int i = 0; 
    StringBuffer sb = new StringBuffer(); 
    while (i < line) 
    { 
     double first_input = StdIn.readDouble(); 
     double second_input = StdIn.readDouble(); 
     double third_input = StdIn.readDouble(); 
     double average = first_input * 0.2 + second_input * 0.4 + third_input * 0.4; 
     sb.append(average); 
     sb.append(" is..\n"); 
     line -= 1; 
    } 
    StdOut.println(sb.toString()); 
} 

僅供參考,似乎OP所使用的庫http://introcs.cs.princeton.edu/java/stdlib/,它旨在利用一個參數,它是反覆運行的次數。