我需要创建一个在0到99之间生成25个随机整数的应用程序,然后在两行分别输出这些整数,一个用于奇数,另一个用于偶数。我需要对偶数使用一个数组,对奇数使用一个数组。到目前为止,这就是我所拥有的:
public static void main(String[] args) {
//Odd Numbers
int[] oddNums = new int[25];
for (int index = 0; index < oddNums.length; index++) {
oddNums[index] = (int) (Math.random()*99);
}
System.out.print("ODD: ");
for (int index = 0; index < oddNums.length; index++) {
System.out.print(oddNums[index] + " ");
}
//Even Numbers
int[] evenNums = new int[25];
for (int index = 0; index < evenNums.length; index++) {
evenNums[index] = (int) (Math.random()*99);
}
System.out.print("\nEVEN: ");
for (int index = 0; index < evenNums.length; index++) {
System.out.print(evenNums[index] + " ");
}
}
我已经设置了程序来打印25个随机整数,但我不知道如何使程序只在一行上打印偶数,在另一行上只打印奇数(我对java并不熟悉)。
下面是我得到的一个示例输出:
单数: 28 36 54 98 35 1 59 43 96 69 41 66 37 15 30 17 29 56 83 71 4 24 70 38 均数: 34 45 36 26 73 84 60 21 21 28 98 69 32 32 24 72 29 26 88 77 2 23 58 47
这是错误的,因为这两条线上都有偶数和奇数。
这就是输出应该是什么样子:
奇数: 25 97 23 45 63 91 13 47 93 51 29 偶数: 22 94 46 74 18 48 32 84 28 92 56
一条线上只有奇数,另一条线上只有偶数。
有人知道我需要在这里加什么吗?
发布于 2015-04-12 10:18:30
稍微修改一下你的程序,就会得到想要的结果。
public static void main(String[] args) {
//Odd Numbers
int[] randomNumbers = new int[25];
int[] evenNumbers = new int[25];
int[] oddNumbers = new int[25];
int k = 0, l = 0;
for (int index = 0; index < randomNumbers.length; index++) {
randomNumbers[index] = (int) (Math.random() * 99);
}
for (int i = 0; i < 25; i++) {
if (randomNumbers[i] % 2 == 0) {
evenNumbers[k] = randomNumbers[i];
k++;
} else {
oddNumbers[l] = randomNumbers[i];
l++;
}
}
}
发布于 2015-04-12 10:23:40
你只需生成25个号码。生成这些ints之后,您可以在它们所属的数组中找到它们。
int num;
int oddIndex = -1;
int evenIndex = -1;
for (index = 0; index < 25 ; index++){
num = (int) (Math.random()*99);
if (num % 2 == 1){
oddIndex++;
oddNum[oddIndex] = num;
}
else{
evenIndex++;
evenNum[evenIndex] = num;
}
}
在本例中,您不确定每个数组的大小。因此,我建议您使用ArrayList而不是数组。如果使用ArrayList,则不需要处理oddIndex和evenIndex。
发布于 2015-04-12 10:13:42
你可以用公式n= 2*x均匀地在0,100中产生一个偶数,其中x在0,49中是一致随机的。
你也可以用n= 2*x+1生成一个一致随机奇数,其中x在0,49中是一致随机的。
https://stackoverflow.com/questions/29592767
复制相似问题