2013-11-21 18 views
-1

今天早些時候我學習瞭如何創建自己的方法,並且我們的教師的任務是創建一個Java程序,該程序將提示用戶輸入他想要輸入的數字數量(如果您願意的話),以及數字本身(受所設置的櫃檯限制)。然後控制檯將顯示輸入的所有數字中最大的數字。我想知道,如果不使用數組可以做到這一點(當然不考慮難度級別,我只是希望能夠通過首先學習來更好地理解數組)。如何從用戶輸入的一系列整數中返回最大數字而不使用數組?

這是我想出了到目前爲止的代碼,但它不會跑,所以我敢肯定這是錯的,真正遙遠的距離是正確的答案:

import java.util.Scanner; 
public class Largest { 

public static void main(String[] args) { 
Scanner input=new Scanner (System.in); 

    int ctr=0; 
    int list=0; 
    double nums=0; 


    System.out.println("How many numbers would you like to enter?"); 
    ctr=input.nextInt(); 

    System.out.println("Enter the " + ctr + " numbers to determine which is the largest: "); 

    do 
    { 
     nums=input.nextDouble(); 
     list++; 
    } while (list!=ctr); 

    System.out.println("The largest among the " + ctr + " numbers is " + largest(nums)); 
    } 

    public static double largest (double nums) 

    { 
     double maxValue = Double.MIN_VALUE; 

      if (nums > maxValue){ 
       maxValue = nums; 
       } 
     return maxValue; 
    } 
} 

此刻,我我正在用盡想法。請理解我對Java非常陌生,我所知道的是來自我在線閱讀的東西。我無法在互聯網上找到有關此特定程序的很多內容,因此不勝感激!

基本上,這就是我想要的控制檯看起來像輸出時:提前

How many numbers would you like to enter? 
5 
Enter the 5 numbers to determine which one is the largest: 
4 
8 
2 
10 
5 
The largest among the 5 numbers is 10. 

謝謝!

編輯: 我已經更新上面的代碼,一切完美的作品,除了一個事實,即所顯示的數字是總是最後輸入的號碼,不一定在該系列中數量最多。在任何人問起之前,我想嘗試調用我在這個程序中創建的方法之一,所以儘可能地,如果這個代碼可以修復而不需要去掉public static double largest (double nums),那就太棒了。

+1

如果您想要獲得您發佈的確切輸出,您需要將數字存儲在稍後要打印的地方。因此你需要一個數組。另外你在錯誤的地方有很多''''''''。 – Danny

+0

@Danny啊是的,這可能是爲什麼它沒有運行。感謝您指出了這一點! – braindead

回答

3

如果你被一個得到的數字之一,你只需要存儲你到目前爲止的最大數量。沒有數組需要。

而不是將您的數字添加到您的do循環中的列表,只需比較新數字與maxValue。

  1. 將maxValue初始化爲輸入的第一個數字。

  2. 在做循環所有後續的數字比較,包括maxValue,更換包括maxValue如果新的數量較大

+0

這怎麼能實現? – braindead

+1

請參閱大綱的編輯答案 – vogomatix

1

試試這個:

double largest = Double.MIN_VALUE; 
do 
{ 
    nums=input.nextDouble(); 
    if (nums > largest) 
    largest = nums; 
    list++; 
} while (list!=ctr); 
+0

你確定'list = list + nums;'是你打算輸入的內容嗎? – kevinsa5

+0

其實沒有。我剛剛從上面複製了它... – mvieghofer

2

如果你不想使用數組:

  1. largest = - ∞
  2. 讀取輸入x
  3. 如果x > largest設置largest = x
  4. 轉至2

將此轉換爲Java,就完成了。

相關問題