题目描述
奇数放在奇数下标上,偶数放在偶数下标上
思想
设置指针m,n,m指向第一个偶数下标,n指向第一个奇数下标,循环对数组最后一个位置进行判断,若是偶数则将其与m指向的数值进行交换并让m=m+2,即指向下一个偶数下标,反之为奇数则将其与n指向的数值进行交换并让n=n+2,即指向下一个奇数下标。当m或n越界则退出循环。题目已解。
题解
import java.util.Scanner;
public class OddAndEven {
/*
* 将一个数组的奇数放在奇数位偶数放在偶数位上
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int numb[] = new int[N];
for(int i=0;i<N;i++){
numb[i] = scan.nextInt();
}
scan.close();
int m=0,n =1,temp;
while(m<=N-1&&n<=N-1) {
System.out.println(numb[N-1]);
if(numb[N-1]%2!=0) {
temp = numb[N-1];
numb[N-1] = numb[n];
numb[n] = temp;
n=n+2;
}else {
temp = numb[N-1];
numb[N-1] = numb[m];
numb[m] = temp;
m=m+2;
}
}
for(int i=0;i<N;i++) {
System.out.print(numb[i]+" ");
}
}
}