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

Java数组问题:无法按每行10个输出奇偶数字且输出不全

问题分析与修正代码

原代码的两个核心问题

  • 奇偶数字输出不全:判断条件逻辑错误,将「是否为奇偶」和「原数组索引位置是否为10的倍数」做了逻辑与,导致只输出了原数组每10个元素里最后一个符合奇偶性的数,绝大多数符合条件的数被过滤掉。
  • 每行10个的格式失效:没有单独统计已输出的奇偶数字数量,而是用原数组的索引来判断换行,逻辑完全不匹配需求。

修正后的代码

import java.util.Scanner;

public class Array {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

        int[] A = new int[300];
        // 初始化数组为1-500的随机整数
        for (int i = 0; i < A.length; i++) {
            A[i] = (int) (Math.random() * 500 + 1);
        }

        // 输出原数组(每行10个)
        System.out.println("Original Array:");
        for (int i = 0; i < A.length; i++) {
            System.out.print(A[i] + " ");
            if ((i + 1) % 10 == 0) {
                System.out.println();
            }
        }
        System.out.println();

        // 输出奇数(每行10个)
        System.out.println("Odd Numbers:");
        int oddCount = 0;
        for (int num : A) {
            if (num % 2 != 0) {
                System.out.print(num + " ");
                oddCount++;
                if (oddCount % 10 == 0) {
                    System.out.println();
                }
            }
        }
        System.out.println();

        // 输出偶数(每行10个)
        System.out.println("Even Numbers:");
        int evenCount = 0;
        for (int num : A) {
            if (num % 2 == 0) {
                System.out.print(num + " ");
                evenCount++;
                if (evenCount % 10 == 0) {
                    System.out.println();
                }
            }
        }
    }
}

关键修正点

  • 新增oddCount和evenCount计数器,分别统计已输出的奇数、偶数数量,每输出10个就执行换行操作。
  • 遍历数组时,只要数字符合奇偶性就输出,不再关联原数组的索引位置,确保所有符合条件的数都能被输出。
  • 优化了原数组的输出提示,让结果展示更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:16:14