Java使用for循环实现数组奇偶排序时输出编号混乱问题解决
问题原因
你当前代码的问题出在两方面:
- 输出「Arranged Elements」时直接用了原始数组的下标
y作为编号,原始数组下标从0开始,所以首先就出现了编号为0的错误 - 你的逻辑是遍历原始数组筛选偶数、奇数先后输出,但编号直接复用了元素在原始数组的下标,自然会跟着原始位置错乱,没有按输出的先后顺序生成新编号。
解决方法
新增一个独立的计数器变量,专门统计「Arranged Elements」的输出序号,每次输出后自增即可,无需改动原数组的存储逻辑。
修改后的完整代码如下:
import java.util.*; public class Main { public static void main(String[] args) { Scanner x = new Scanner (System.in); System.out.print("Enter the number of elements: "); int elements = x.nextInt(); int a[]= new int[elements]; for(int y=0;y<a.length;y++) { System.out.print("Element #"+(y+1)+": "); a[y]=x.nextInt(); } System.out.println(""); System.out.println("Arranged Elements:"); // 新增输出序号计数器,从1开始 int seq = 1; for(int y=0;y<a.length;y++) { if(a[y]%2==0) { // 用计数器作为编号,而非原始数组下标 System.out.println("Element #"+seq+": "+a[y]); seq++; } } for(int y=0;y<a.length;y++) { if(a[y]%2!=0) { System.out.println("Element #"+seq+": "+a[y]); seq++; } } } }
运行后即可得到你期望的输出效果。
内容的提问来源于stack exchange,提问作者user17219479
相关产品推荐
相关产品推荐

