Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

25 Random Numbers Generator of Even and Odd

Tags:

java

random

I need to generate 25 random numbers and then separate them into two arrays, depending on whether they are odd or even. This is my expected output:

Even: 40 10 70 58 20 18 74 44 14 54 50 42
Odd: 21 75 29 69 7 41 33 35 21 13 93 73 33

This is what I have so far:

public static void main(String[] args) {   
Scanner input = new Scanner(System.in).useDelimiter("\n");
int[] randomNumbers = new int[25];
int[] evenNumbers = new int[25];
int[] oddNumbers = new int[25];
int k = 0, l = 0;

for (int i= 0; i< randomNumbers.length; i++) {
    randomNumbers[i] = (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++;
    }
}System.out.print("Even: ");
for (int i = 0; i< evenNumbers.length; i++) {
    System.out.print(evenNumbers[i] + " ");

}System.out.println("");
System.out.print("Odd: ");
for (int i= 0; i < oddNumbers.length; i++) {
    System.out.print(oddNumbers[i] + " ");
    }
  }
}

Here is my actual output:

Even: 40 10 70 58 20 18 74 44 14 54 50 42 0 0 0 0 0 0 0 0 0 0 0 0 0
Odd: 21 75 29 69 7 41 33 35 21 13 93 73 33 0 0 0 0 0 0 0 0 0 0 0 0

I would like to know how to get rid of the zeros at the end of each output.

like image 256
aCode31 Avatar asked Nov 28 '25 06:11

aCode31


1 Answers

int[] evenNumbers = new int[25]; will create an array of 25 ints that are initialized to 0.

The loop will then print all 25 of those ints, even if they haven't been replaced:

for (int i = 0; i< evenNumbers.length; i++) {
  System.out.print(evenNumbers[i] + " ");
}

To fix that either loop from 0 to k-1 (e.g. i < k) or use List<Integer> instead of an int array.

The same applies to the odd numbers, you'd just use i < l instead.

like image 82
Thomas Avatar answered Nov 30 '25 18:11

Thomas