Java数组奇偶分离输出问题求助:需调整奇数元素位置匹配预期
调整奇数输出顺序以匹配测试要求
你的代码当前按输入顺序输出奇数,导致测试用例(输入1、3、4、5、2)的奇数输出为135,但预期是153。要实现这个结果,需要先输出第一个奇数,再逆序输出剩余的奇数。
修改后的代码如下:
public static void main(String[] args) { Scanner input = new Scanner(System.in); int N; N = input.nextInt(); int nums[] = new int[N]; for (int i = 0; i < N; i++) { nums[i] = input.nextInt(); } // 按原顺序输出所有偶数 for (int i = 0; i < N; i++) { if (nums[i] % 2 == 0) { System.out.print(nums[i]); } } // 定位第一个奇数的索引 int firstOddPos = -1; for (int i = 0; i < N; i++) { if (nums[i] % 2 != 0) { firstOddPos = i; break; } } // 输出第一个奇数 if (firstOddPos != -1) { System.out.print(nums[firstOddPos]); } // 从数组末尾往前遍历,输出剩余的奇数 for (int i = N - 1; i >= 0; i--) { if (i != firstOddPos && nums[i] % 2 != 0) { System.out.print(nums[i]); } } }
测试验证
输入序列:1、3、4、5、2
- 偶数输出:4、2
- 奇数输出:1(第一个奇数)→5(从末尾往前第一个奇数)→3(接下来的奇数)
- 最终输出:
42153,完全匹配预期。
内容的提问来源于stack exchange,提问作者WcruzX
相关产品推荐
相关产品推荐

