内存限制:128 MB时间限制:1.000 S
题目描述
调整正整型数组使奇数全部都位于偶数前面,注意数组的遍历顺序要求为一方从左端开始向后,另一方从右端开始向前,若前数为偶数且后数为奇数,则进行交换,否则继续遍历。
输入
正整型数组的元素个数sz(sz<4000),然后依次为数组各元素的整型值
输出
交换过程,其格式为:Times 交换次数:数1<==>数2,每次交换占一行
然后输出交换后的数组各元素,元素之间用一个空格分隔,最后一个元素后无空格
样例输入
9
1 2 3 4 5 6 7 8 9
样例输出
Times 1: 2<==>9
Times 2: 4<==>7
1 9 3 7 5 6 4 8 2
完整代码如下:
#include<stdio.h>
void Swap(int *px,int *py);
int main(){
int sz;
int i,j,t;
scanf("%d",&sz);
int a[sz];
t=sz-1;
int cnt=1;
for(i=0;i<sz;i++){
scanf("%d",&a[i]);
}
for(i=0;i<sz;i++){
if(a[i]%2==0){
for(j=t;j>i;j--){
if((a[j]%2==1)){
printf("Times %d: %d<==>%d\n",cnt,a[i],a[j]);
cnt++;
Swap(&a[i],&a[j]);
t=j-1;
goto label1;
}
}
label1:;
}
}
for(i=0;i<sz-1;i++){
printf("%d ",a[i]);
}
printf("%d\n",a[sz-1]);
}
void Swap(int *px,int *py){
int temp = *px;
*px=*py;
*py=temp;
}