将数组奇数位置上的数据与相邻偶数位置上的数据交换,求更正
输入
输入分为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());
}
}