奇数偶数交换

题目描述:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组
的后半部分.

输入格式:
在这里插入图片描述
输入样例:

1
10 
1 2 3 4 5 6 7 8 9 10

输出样例:

1 9 3 7 5 6 4 8 2 10
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
	int t;//t组输入
	int n,tmp;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		int num[n];
		for(int i=0;i<n;i++){
			scanf("%d",&num[i]);
		}
		int p1=0,p2=n-1;
		while(p1<p2){
			while(p1<p2&&num[p1]%2==1){//找偶数
				p1++; 
			}
			while(p1<p2&&num[p2]%2==0){//找奇数 
				p2--; 
			}
			tmp=num[p2];
			num[p2]=num[p1];
			num[p1]=tmp;
		}
		for(int j=0;j<n;j++){
			printf("%d ",num[j]);
		}
	}
	return 0;
}
发布了53 篇原创文章 · 获赞 97 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/chaokudeztt/article/details/104625251
今日推荐