本文主要是介绍C++奇偶排序,从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
奇偶排序
从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。
(本题是建立在冒泡排序基础之上,对前后元素是否交换增加限制条件)
Sample Input
10 2 7 9 11 5 4 3 6 8 20 0
Sample Output
3 5 7 9 11 2 4 6 8 10 20
#include<iostream>
using namespace std;
const int Max = 100;
int main()
{
int a[Max],n=0,i,j;
cin >> a[n];
while (a[n])//向数组中输入元素,以0结束
{
n++;
cin >> a[n];
}
for (i = 0; i < n - 1; i++)//冒泡排序
{
for (j = 0; j < n - 1 - i; j++)
{
//元素交换的条件有两个:
//1.当前一个元素为偶数,后一个元素为奇数时;
//2.前后两个元素同为奇数或偶数,并且前一个元素比后于一个元素大时
if ((a[j]%2<a[j+1]%2)||((a[j]%2==a[j+1]%2)&&(a[j]>a[j+1])))
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] =temp;
}
}
}
for (i = 0; i < n; i++)//遍历数组
cout << a[i] << " ";//输出所有元素
cout << endl;
return 0;
}
这篇关于C++奇偶排序,从键盘输入n(n<100)个整数(以0结束),存放在一个一维数组中,将它们按奇数在前、偶数在后,同为奇数或偶数的按从小到大的顺序排序,并输出排序后的结果。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!