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
相关产品推荐
相关产品推荐

