解题思路:
1.由题可得,一共十个数字,奇数按照降序输出,偶数按照升序输出,那么可以设置两个数组,a用来存奇数,b用来存偶数
2.利用排序的方法将两个数组分别进行降序排序和升序排序
3.输出两个数组
#include<bits/stdc++.h>
using namespace std;
int a[100],b[100];
int main()
{
int x,num1=0,num2=0;
for(int i=1;i<=10;i++)
{
cin>>x;
if(x%2==1)
a[++num1]=x;//将奇数加入到数组a
else
b[++num2]=x;//将偶数加入到数组b
}
for(int i=1;i<=num1-1;i++)//冒泡排序排序n-1轮
{
for(int j=num1;j>=i+1;j--)//每轮排序比较n-1-i次
{
if(a[j]>a[j-1])//如果后一个数大于前一个
{
int temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(int i=2;i<=num2;i++)//插入排序,从第二个数字开始
{
int k=i-1;//书签为该位置的前一位
int temp=b[i];//temp记录当前这个值
while(k>0&&b[k]>temp)//如果前一位的数字比待插入的数字大
{
b[k+1]=b[k];//前一位的数字往后移动一位
k--;//书签减1
}
if(k!=i-1)//如果书签发生了变化
b[k+1]=temp;//将当前这个值插入到指定位置
}
for(int i=1;i<=num1;i++)
cout<<a[i]<<" ";
for(int i=1;i<=num2;i++)
cout<<b[i]<<" ";
return 0;
}