You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中生成随机数数组并打印偶数及偶数位置元素的问题

Fixing Your Java Array Methods: Random Generation, Even Number Filtering, and Even Index Extraction

Hey Ethan, let's sort out those array-related hurdles you're facing! I'll walk through each of your methods, fix the gaps in your code, and explain how everything works together.

First, Let's Spot the Key Issues in Your Original Code

  • The genNumber() method has incomplete random number generation code (Math.... is cut off)
  • everyEven() and getEven() don't accept an array as input, so they can't operate on the random array you generate
  • When printing the results of everyEven() and getEven(), you're not converting the array to a readable string (this would print a memory address instead of actual values)
  • Your printf syntax is incorrect for displaying array content

Here's the Full, Working Code with Explanations

import java.util.Arrays;

public class ArrayOperations {
    public static void main(String[] args) {
        // Generate and store our random number array first
        int[] randomNumbers = genNumber();
        
        // Print each result with proper human-readable formatting
        System.out.println("Numbers: " + Arrays.toString(randomNumbers));
        System.out.println("Even index elements: " + Arrays.toString(everyEven(randomNumbers)));
        System.out.println("Even numbers: " + Arrays.toString(getEven(randomNumbers)));
    }

    // Method to generate an array of 10 random integers (0-99)
    public static int[] genNumber(){
        int[] number = new int[10];
        for(int i = 0; i < number.length; i++) {
            // Generate random int between 0 (inclusive) and 100 (exclusive)
            number[i] = (int)(Math.random() * 100);
        }
        return number;
    }

    // Method to get elements at even indices (0, 2, 4...)
    public static int[] everyEven(int[] inputArray){
        // Calculate result size: (length +1)/2 handles both even/odd input lengths
        int resultSize = (inputArray.length + 1) / 2;
        int[] evenIndexElements = new int[resultSize];
        int index = 0;
        
        // Step through the array 2 elements at a time to grab even indices
        for(int i = 0; i < inputArray.length; i += 2) {
            evenIndexElements[index++] = inputArray[i];
        }
        return evenIndexElements;
    }

    // Method to filter out even numbers from the array
    public static int[] getEven(int[] inputArray){
        // First count how many even numbers exist to size our result array
        int evenCount = 0;
        for(int num : inputArray) {
            if(num % 2 == 0) {
                evenCount++;
            }
        }
        
        int[] evenNumbers = new int[evenCount];
        int index = 0;
        // Populate the result array with even values
        for(int num : inputArray) {
            if(num % 2 == 0) {
                evenNumbers[index++] = num;
            }
        }
        return evenNumbers;
    }
}

Breakdown of Each Fix

  • genNumber(): Completed the random number generation with Math.random() * 100 to produce integers between 0 and 99. Adjust the multiplier if you want a different range (e.g., * 50 for 0-49).
  • everyEven(): Added an int[] parameter to receive the target array. We calculate the result array size based on input length, then loop through stepping by 2 to grab elements at indices 0, 2, 4, etc.
  • getEven(): Also added an int[] parameter. First we count even numbers to create a properly sized result array, then loop again to populate it with even values.
  • Main Method: Now stores the random array in a variable to pass to other methods. Uses Arrays.toString() for all array prints to show readable values instead of memory addresses.

Example Output

Numbers: [42, 17, 88, 3, 50, 91, 14, 73, 22, 65]
Even index elements: [42, 88, 50, 14, 22]
Even numbers: [42, 88, 50, 14, 22]

内容的提问来源于stack exchange,提问作者Ethan Wolfe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:29:10