2012-09-12 57 views
2

下面的代碼完美地編譯了用戶輸入的5個整數。
我想要做的是改變我的代碼,以便我可以作爲用戶在列表中用戶想要多少個數字。那麼程序會要求用戶輸入那麼多整數,然後程序會找到那些整數中最大的整數。任何人都可以幫我改變下面的代碼來適應這些新標準嗎?Java:在用戶設置的整數個列表中找到最大數字

{ 
    int integer1 = 
    Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 
    int integer2 = 
    Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 
    int integer3 = 
    Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 
    int integer4 = 
    Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 
    int integer5 = 
    Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 

    if (integer1 > integer2 && integer1 > integer3 && integer1 > integer4 && integer1 > integer5) 
     JOptionPane.showMessageDialog(null, "The largest number is: " + integer1); 
    if (integer2 > integer1 && integer2 > integer3 && integer2 > integer4 && integer2 > integer5) 
     JOptionPane.showMessageDialog(null, "The largest number is: " + integer2); 
    if (integer3 > integer2 && integer3 > integer1 && integer3 > integer4 && integer3 > integer5) 
     JOptionPane.showMessageDialog(null, "The largest number is: " + integer3); 
    if (integer4 > integer1 && integer4 > integer3 && integer4 > integer2 && integer4 > integer5) 
     JOptionPane.showMessageDialog(null, "The largest number is: " + integer4); 
    if (integer5 > integer1 && integer5 > integer3 && integer5 > integer4 && integer5 > integer2) 
     JOptionPane.showMessageDialog(null, "The largest number is: " + integer5); 
} 

我首先要與

how many integers do you want in your list? 

然後我想說

enter an integer: 

多次的用戶說,他想提示用戶。

+1

我懷疑這是作業。您將需要循環並使用數組來收集輸入整數。那是你需要幫助的嗎?或者,您可以隨時跟蹤哪些輸入是最大的,而不是數組。 –

回答

11

這裏的關鍵是使用Collections.max

根據其元素的自然排序,返回給定集合的最大元素。

Integer的自然順序是從最小到最大,即上升。這使它在這裏使用完美。

int largest = Collections.max(Arrays.asList(integer1, integer2, integer3, 
    integer4, integer5)); 

或者,你可以使用一個循環,而不是隻建立了List。請參閱下面的代碼,提示用戶輸入要輸入的整數數量。

int n = Integer.parseInt(
    JOptionPane.showInputDialog("How many integers do you want in your list?")); 
List<Integer> inputs = new ArrayList<Integer>(n); 
for (int i = 0; i < n; ++i) { 
    inputs.add(Integer.parseInt(
     JOptionPane.showInputDialog("Enter an integer:"))); 
} 
int largest = Collections.max(inputs); 
JOptionPane.showMessageDialog(null, "The largest number is: " + largest); 
+0

我想強制換行,並且允許打破幾個字符。我需要找到允許的中斷點的最大指數。 Collections.max()的答案對我很好。謝謝! – beyondtheteal

0

這裏去了完整的解決方案:

首先需要來自用戶的輸入他們想要多少個號碼,然後用列表來存儲這些數字和最後用Collections.max(由@oldrinb建議)找到數量最多。

您可以嘗試以下操作:

List<Integer> listOfNumbers = new ArrayList<Integer>(); 
int count = Integer.parseInt(JOptionPane.showInputDialog("how many integers do you want in your list?")); 

for(int i=1;i<=count;i++){ 
    int number = Integer.parseInt(JOptionPane.showInputDialog("Enter an integer::")); 
    listOfNumbers.add(number); 
} 
JOptionPane.showMessageDialog(null, "The largest number is: " + Collections.max(listOfNumbers)); 
0

你可以這樣做:

  1. 詢問用戶他想要進入整數數量:

    int a = Integer.parseInt(JOptionPane.showInputDialog("Enter the size of the array:")); 
    
  2. 創建陣列。

    int [] arr = new int[a]; 
    
  3. 閱讀數字

    for (int i=0; i<a; i++){ 
        arr[i] = Integer.parseInt(JOptionPane.showInputDialog("Enter an integer:")); 
    } 
    
  4. 計算數量最多

    int max=0; 
    for (int i=0; i<a; i++){ 
        if (max < arr[i]) { 
         max = arr[i]; 
        } 
    } 
    

你將有你的價值在最高

3

你知道如何獲得來自你的整數ser,所以新要求的第一部分很簡單:

int n = Integer.parseInt(JOptionPane.showInputDialog(
    "how many integers do you want in your list?")); 

然後,您將需要循環並收集那麼多整數。你不需要存儲它們,因爲你只是在尋找最大的一個。

int maxSoFar = Integer.MIN_VALUE; 
for (int i = 0; i < n; ++i) { 
    int integer = 
     Integer.parseInt(JOptionPane.showInputDialog("enter an integer:")); 
    if (integer > maxSoFar) { 
     maxSoFar = integer; 
    }  
} 
+0

我正準備說完全一樣的東西。 –

0

我實際上有一個預製的類,我設置爲找到任何一組值的最大整數。你可以把這個類到你的項目,只是使用它在任何類,像這樣:

System.out.println(figures.getLargest(8,6,12,9,120)); 

這將返回值「120」,並將其放置在輸出中。如果您有興趣使用它,請使用以下方法源代碼:

public class figures { 

    public static int getLargest(int...f) { 
      int[] score = new int[f.length]; 
      int largest=0; 
      for(int x=0;x<f.length;x++) { 
       for(int z=0;z<f.length;z++) { 
        if(f[x]>=f[z]) { 
        score[x]++; 
        }else if(f[x]<f[z]) { 

        }else { 
         continue; 
        } 
        if(z>=f.length) { 
        z=0; 
        break; 
        } 
       } 
     } 
for(int fg=0;fg<f.length;fg++) { 
    if(score[fg]==f.length) { 
     largest = f[fg]; 
    } 
} 
return largest; 
    } 
} 
-1

import javax.swing.JOptionPane;

公共類Largest_String { 公共靜態無效的主要(字串[] args){ INT整數1 = 的Integer.parseInt(JOptionPane.showInputDialog( 「輸入一個整數:」)); int integer2 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an integer:」)); int integer3 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an integer:」)); int integer4 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an integer:」)); int integer5 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an integer:」));
int integer6 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an Integer」)); int integer7 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an Integer」)); int integer8 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an Integer」)); int integer9 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an Integer」)); int integer10 = Integer.parseInt(JOptionPane.showInputDialog(「Enter an Integer」));

if (integer1 > integer2 && integer1 > integer3 && integer1 > integer4 && integer1 > integer5 && integer1>integer6 && integer1>integer7 && integer1>integer8 && integer1>integer9 && integer1>integer10) 
    JOptionPane.showMessageDialog(null, "The largest number is: " + integer1); 
if (integer2 > integer1 && integer2 > integer3 && integer2 > integer4 && integer2 > integer5 && integer2>integer6 && integer2>integer7 && integer2>integer8 && integer2>integer9 && integer2>integer10) 
    JOptionPane.showMessageDialog(null, "The largest number is: " + integer2); 
if (integer3 > integer2 && integer3 > integer1 && integer3 > integer4 && integer3 > integer5 && integer3>integer6 && integer3>integer7 && integer3>integer8 && integer3>integer9 && integer3>integer10) 
    JOptionPane.showMessageDialog(null, "The largest number is: " + integer3); 
if (integer4 > integer1 && integer4 > integer3 && integer4 > integer2 && integer4 > integer5 && integer4>integer6 && integer4>integer7 && integer1>integer8 && integer1>integer9 && integer1>integer10) 
    JOptionPane.showMessageDialog(null, "The largest number is: " + integer4); 
if (integer5 > integer1 && integer5 > integer3 && integer5 > integer4 && integer5 > integer2 && integer5>integer6 && integer5>integer7 && integer5>integer8 && integer5>integer9 && integer5>integer10) 
    JOptionPane.showMessageDialog(null, "The largest number is: " + integer5); 
if(integer6 > integer1 && integer6 > integer3 && integer6 > integer4 && integer6 > integer2 && integer6>integer7 && integer6>integer8 && integer6>integer9 && integer6>integer10 && integer6>integer5) 
    JOptionPane.showMessageDialog(null,"The largest number is:"+integer6); 
if(integer7>integer1 && integer7>integer2 && integer7>integer3 && integer7>integer4 && integer7>integer5 && integer7>integer6 && integer7>integer8 && integer7>integer8 && integer7>integer9 && integer7>integer10) 
    JOptionPane.showMessageDialog(null,"The largest number is:"+integer7); 
if(integer8>integer1 && integer8>integer2 && integer8>integer3 && integer8>integer4 && integer8>integer5 && integer8>integer6 && integer8>integer7&& integer8>integer9 && integer8>integer10) 
JOptionPane.showMessageDialog(null,"The largest number is:"+integer8); 
if(integer9>integer1 && integer9>integer2 && integer9>integer3 && integer9>integer4 && integer9>integer5 && integer9>integer6 && integer9>integer7&& integer9>integer8 && integer9>integer10) 
     JOptionPane.showMessageDialog(null,"The largest number is:"+integer9); 
    if(integer10>integer1 && integer10>integer2 && integer10>integer3 && integer10>integer4 && integer10>integer5 && integer10>integer6 && integer10>integer7&& integer10>integer8 && integer10>integer9) 
     JOptionPane.showMessageDialog(null,"The largest number is:"+integer10); 
    } 
} 
+1

添加一些關於您的解決方案的信息,並對代碼進行格式化,請參閱https:// stackoverflow。COM /幫助/如何到結果 – user7294900

相關問題