我已经试着完成这件事好几个小时了。由于用户的输入,我的程序应该生成随机数。然后程序将这些数字分成两个新的偶数组和奇数组。我已经解决了“生成的随机数”部分,但现在我需要将偶数和奇数转移到两个新的数组中。
下面是输出应该是这样的:
How many random numbers between 0 - 999 do you want? **12**
Here are the random numbers:
145 538 56 241 954 194 681 42 876 323 2 87
These 7 numbers are even:
538 56 954 194 42 876 2
These 5 numbers are odd:
145 241 681 323 87这是我目前的代码:
import java.util.Scanner;
public class SlumpadeTal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Hur många slumptal i intervallet 0 - 999 önskas?");
int antal = input.nextInt();
System.out.println("Här är de slumpade talen:");
int[] arrayen = new int[antal];
for (int i = 0; i < arrayen.length; i++) {
arrayen[i] = (int) (Math.random() * 999 + 1);
System.out.print(arrayen[i] + " ");
if ((arrayen[i] % 2) == 0) {
}
}
}
}请注意,我不能为此使用任何类。例如Arraylist、Vector或其他!
发布于 2015-11-23 00:24:53
一个简单的解决方案是计算偶数和奇数的数量,创建这些大小的数组,然后再次迭代原始数组,将每个数字放在它的位置上。
编辑:如下所示:
int evenCounter = 0;
int oddCounter = 0;
Scanner input = new Scanner(System.in);
System.out.println("Hur många slumptal i intervallet 0 - 999 önskas?");
int antal = input.nextInt();
System.out.println("Här är de slumpade talen:");
int[] arrayen = new int[antal];
for (int i = 0; i < arrayen.length; i++) {
arrayen[i] = (int) (Math.random() * 999 + 1);
System.out.print(arrayen[i] + " ");
if ((arrayen[i] % 2) == 0) {
evenCounter++;
}
else
oddCounter++;
}
}
int[] evenArray = new int[evenCounter];
int[] oddArray = new int[oddCounter];
evenCounter = 0;
oddCounter = 0;
for (int i =0; i < arrayen.length; i++){
if ((arrayen[i] % 2) == 0) {
evenArray[evenCounter] = arrayen[i];
evenCounter++;
}
else{
oddArray[oddCounter] = arrayen[i];
oddCounter++;
}
}发布于 2015-11-23 00:30:54
我的解决方案是在数字生成后将数字划分为奇数或偶数。使用arraylist将比数组更好,因为它的容量会自动增长,而且它适合您的情况,因为您不知道每次会生成多少偶数或奇数。
发布于 2015-11-23 00:31:04
代码(if ((arrayen[i] % 2) == 0))中的if语句是正确的。
我建议做的不是创建新的数组,而是创建一个具有动态长度的集合类型,比如ArrayList。这样,您就不必担心首先计算出大小,因此不必迭代两次。
如果出于某种原因确实需要数组,可以使用[ArrayList#toArray(T[])](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#toArray(T[]%29)将ArrayList转换为数组
https://stackoverflow.com/questions/33857073
复制相似问题