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