0

私はJavaに非常に慣れておらず、コードの一部を編集して動作させることができるかどうかを確認しているため、コードが乱雑である場合はお詫び申し上げます。と の間に100ランダムな整数を生成し、それらを配列に格納する必要がある割り当てがあります。次に、偶数の整数を別の配列に分類する別のメソッドを作成し、別のメソッドでオッズを使用してこれを行う必要があります。025

私の問題は、どんなに頑張っても、100ランダムな整数で元の配列を認識するための均等な並べ替え方法を取得できないことです。コマンド プロンプトには必要と表示されますint[]が、int が見つかりました。sortEvens メソッドに配列ではなく整数を要求するようにしようとしたところ、プロンプトは正反対のことを言いました。これが私のコードです:

public class AssignmentEight
{
public static void main (String[] args)
{
    final int NUMBER_OF_ELEMENTS = 100;
    int numbers[];
    int evens[];
    int odds[];
    numbers = new int[100];

    for (int n = 0; n < numbers.length; n++)
    {
        numbers[n] = (int)(Math.random() * 25);
    }

    evens = sortEvens (numbers);
    display (evens);
}

public static int sortEvens (int a[])
{

    int evens[];
    for (int n = 0; n < 100; n++)
    {
        int x = (a[n] % 2);
        if (x == 0)
        {
            evens[n] = a[n];
        }
    }
    return evens;
}

public static void display (int array[])
{
    for (int n = 0; n < array.length; n++)
        System.out.print(array[n]);
        System.out.print("\t");
}
}

これが意味をなさない場合は申し訳ありません。私の主な問題は、プログラムをコンパイルできないことです。必要に応じて、さらに詳細を提供しようとします。

4

1 に答える 1

2

メソッドsortEvens()は を返す必要がありint[]ます。配列の初期化も忘れています。

public static int[] sortEvens (int a[]) {
    int evens[] = new int[100];
    // ...
}

インgetEvens()メソッド

if ((x == 0)) // ^ (x == 2)) <-- remove this ^ condition
    totalEvens += 1;

for (n = 0; n < a.length; n++) { // loop a.length times; not totalEvens
    x = (a[n] % 2);
    if (x == 0) { // ADDED
        evens[y] = a[n];
        y++; // increment only when an even is found
    } // ADDED
}

インgetOdds()メソッド

for (n = 0; n < a.length; n++) { // loop a.length times; not totalOdds
    x = (a[n] % 2);
    if (x == 1) { // ADDED
        odds[y] = a[n];
        y++; // increment only when an odd is found
    } // ADDED
}
于 2013-08-22T23:18:46.987 に答える