2

以下のコードは、ユーザーが入力した 5 つの整数に対して完全にコンパイルされます。
私がやりたいことは、ユーザーがリストに必要な数をユーザーとしてできるようにコードを変更することです。次に、プログラムはユーザーにその数の整数を入力するように求め、プログラムはそれらの整数の最大のものを見つけます。これらの新しい標準に合わせて以下のコードを変更するのを手伝ってくれる人はいますか?

{
    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: 

ユーザーが望んだ回数だけ。

4

7 に答える 7

14

ここで重要なのは、を使用すること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);
于 2012-09-12T04:48:30.563 に答える
4

ユーザーから整数を取得する方法を知っているので、新しい要件の最初の部分は簡単です。

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;
    }    
}
于 2012-09-12T04:55:27.053 に答える
0

完全なソリューションは次のとおりです。

最初にユーザーから必要な数を入力してから、 list を使用してそれらの数を保存し、最後に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));
于 2012-09-12T04:51:16.490 に答える
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];
        }
    }
    

あなたはあなたの価値を最大にします

于 2012-09-12T04:52:14.863 に答える
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;
    }
}
于 2013-07-05T14:55:13.883 に答える