2013-09-24 77 views
0

嗨,大家好我有一個真正的困難時間,試圖讓這段代碼解決。我的指導線爲:要求用戶輸入數字,獲取最小/最大/平均值

  • 創建一個新的Scanner對象,並把它保存到你選擇
  • 的變量名聲明一個整型變量當前用戶的輸入,並把它初始化的東西,是不爲0(我們將盡管如此,將它命名爲intInput - 名稱是任意的)雖然
  • 創建一個while循環,條件是intInput不等於0
  • 在此循環的內部,調用Scanner的nextInt()方法對象並將其存儲到intInput中

我沒有得到任何錯誤,但它沒有按照我認爲的那樣工作。

這裏是我的代碼:

import java.util.Scanner; 

// class name matches the file name 
    public class Lab5 
    { 
    // we must have a main method to run the program 
    `enter code here`public static void main(String[] args) 
    { 
     Scanner scan= new Scanner(System.in); 

     int userInput = 1; 
     int minVal = Integer.MIN_VALUE; 
     int maxVal = Integer.MAX_VALUE; 
     double average = 0; 
     int holdNum = 0; 
     double numSum = 0; 

     System.out.print ("Please enter numbers and to finish the program your last number should be 0: "); 
     numSum += userInput; 
     holdNum++; 

     while (userInput != 0) 
     { 
      userInput = scan.nextInt(); 
     } 

     if (maxVal > Integer.MAX_VALUE) 
     { 
      maxVal = userInput; 
     } 
     if (minVal < Integer.MIN_VALUE) 
     { 
      minVal = userInput; 
     } 
     average = (numSum)/(holdNum); 

     System.out.println("Average = " + average); 
     System.out.println("Max = " + maxVal); 
     System.out.println("Minimum = " + minVal); 
    } 
} 

回答

0

你加入總和中的用戶輸入和遞增的用戶輸入的數量只有當輸入小於最小。我想你會想爲所有輸入做。

+0

對不起,我發佈後,我睡着了。謝謝(你的)信息 。我將總和和遞增移動到我的印刷品的正下方,告訴用戶該做什麼。我仍然沒有得到正確的數字。我分別輸入1,2,3,4,0。我的平均值是1.0(應該是2),最大值是2147483647,最小值是-2147483648。任何進一步的幫助將不勝感激。 –

+0

您使用Integer.MIN_VALUE作爲初始最小值。沒有整數小於這個值,所以初始值永不改變。初始最大值也會發生同樣的情況:沒有整數大於Integer.MAX_VALUE。至於平均水平,你能否更新問題中的代碼?就目前而言,它會在循環的每次運行中打印平均值。 – Joni

+0

對不起,有一個課程不允許筆記本電腦出來。現在我有一個免費的小時工來處理這個問題。 –

相關問題