首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

将数组单数位置上的数据与相邻偶数位置上的数据交换,求更正

2013-03-26 
将数组奇数位置上的数据与相邻偶数位置上的数据交换,求更正输入输入分为2行,第一行输入一个N,N1000第二行

将数组奇数位置上的数据与相邻偶数位置上的数据交换,求更正
输入
输入分为2行,第一行输入一个N,N<1000

第二行输入N 个整数,数据之间用空格分开。

每个整数都小于32767。


输出
输出变换后的数组元素的数值,相互间用空格隔开,第一数之前和最后一个数之后都没有空格。

样例输入
8
1 2 3 4 5 6 7 8
样例输出
2 1 4 3 6 5 8 7
下面是我的代码:为什么只能改第1,2位

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
int N=rd.nextInt();
int arr[]=new int[N];
for(int i=0;i<N;i++)
{
arr[i]=rd.nextInt();
}
for(int i=1;i<arr.length;i++)
{
if(i%2==0)
{
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
else{
int temp=arr[i];
arr[i]=arr[i-1];
arr[i-1]=temp;
}
}
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}

}

[解决办法]

import java.util.Scanner;

public class Switch {

public static void main(String[] args){
Scanner input = new Scanner(System.in);
int number = Integer.parseInt(input.nextLine());
System.out.println("Enter the numbers below");
int[] elements = new int[number];
for(int i = 0;i< number;i++){
elements[i] = Integer.parseInt(input.nextLine());
}
System.out.println("Calculating");
for(int j=0;j<elements.length;j++){
if (j % 2 ==1){
int temp = elements[j -1];
elements[j -1] = elements[j];
elements[j] = temp;
}
}
StringBuilder sb = new StringBuilder("");
for(int k=0;k<elements.length - 1; k++){
System.out.println(elements[k]);
sb.append(elements[k] + " ");
}
sb.append(elements[elements.length - 1]);
System.out.println(sb.toString());
}

}

热点排行