Java对奇偶数进行排序

Java对奇偶数进行排序,java,Java,我现在在一个高中编程课上,我的指令是创建一个程序,将随机数存储在一个数组中,该数组按偶数和奇数排序。这是到目前为止我的代码,我不知道为什么它不工作。它不断打印出0,即使我应该生成大于1的数字。非常感谢您的帮助,谢谢D Random rnd = new Random(); int randomNumArray[] = new int[10]; int evenArray[] = new int[10]; int oddArray[] = new int[10];

我现在在一个高中编程课上,我的指令是创建一个程序,将随机数存储在一个数组中,该数组按偶数和奇数排序。这是到目前为止我的代码,我不知道为什么它不工作。它不断打印出0,即使我应该生成大于1的数字。非常感谢您的帮助,谢谢D

    Random rnd = new Random();

    int randomNumArray[] = new int[10];
    int evenArray[] = new int[10];
    int oddArray[] = new int[10];
    int countEven = 0,countOdd = 0;

    for (int i = 0; i < randomNumArray.length; i++)
    {
        randomNumArray[i] = rnd.nextInt(100) + 1;
        System.out.println(randomNumArray[i]);
        
        if (randomNumArray[i] % 2 == 0)
        {
            evenArray[i] = randomNumArray[i];
            countEven++;
        }
        else if (randomNumArray[i] % 2 == 1)
        {
            oddArray[i] = randomNumArray[i];
            countOdd++;
        }
    }
    for (int i = 0; i < countEven; i++)
    {
        System.out.println(evenArray[i]);
    }
    for (int i = 0; i < countOdd; i++)
    {
        System.out.println(oddArray[i]);
    }
    
Random rnd=new Random();
int randomNumArray[]=新int[10];
int evenArray[]=新int[10];
int-oddArray[]=新int[10];
int count偶数=0,count奇数=0;
for(int i=0;i
您应该更改这些行

evenArray[count偶数]=randomNumArray[i];
oddArray[countOdd]=randomNumArray[i];
。。。而不是

evenArray[i]=randomNumArray[i];
oddArray[i]=randomNumArray[i];

问题是您正在索引
i
处的
evenArray
oddArray
中存储值,这不一定是要写入的数组中的“下一个未使用的空间”。假设第一个数字(当
i=0
时)是偶数,第二个数字(当
i=1
时)是奇数;当第二个数字由
oddArray[i]=randomNumArray[i]存储时
,它将存储在索引1中,但它是第一个奇数,因此它应该位于索引0处的
oddArray

要解决这个问题,您可以使用
count偶数
countOdd
作为要写入的正确索引;例如,当
countOdd
为0时,还没有奇数,因此索引0是写入第一个奇数的正确位置。因此,您可以更改这两行:

if(randomNumArray[i]%2==0)
{
//在这里换
evenArray[count偶数]=randomNumArray[i];
countEven++;
}
else if(randomNumArray[i]%2==1)
{
//在这里换
oddArray[countOdd]=randomNumArray[i];
countOdd++;
}

请澄清。偶数大小的数组没有中间数。