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 回答