如果我的代码很乱,我很抱歉,因为我对Java很新,并且还编辑了部分代码,看看我是否可以使它工作。我有一项任务,我必须在100
和0
之间生成25
个随机整数,并将它们存储在一个数组中。然后,我必须创建另一个方法,将偶数整数分类为一个单独的数组,然后用另一个方法中的赔率来做这个。
我的问题是,无论我怎么努力,我都无法让我的偶数排序方法用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");
}
}
如果这没有意义,我道歉。我的主要问题是我无法编译我的程序。如有必要,我会尽力提供进一步的细节。
答案 0 :(得分: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
}