//描述:输入若干(不超过1000个)非负整数数字,请先取出为奇数的数字按从大到小排序,再取出偶数从小到大进行排序。
//运行时间限制:10s
//内存限制:128Mbyte
//输入:输入一串乱序的数字
//输出:输出排序后的数字
//样例输入:12 34 5 7 92 3 8
//样例输出:7 5 3 8 12 34 92
整个问题的描述可以看出,需要做的就是 输入+判断奇偶+排序+输出。
输入:由于输入数量可变,采用vector的形式动态存储
vector<int> a; //原始输入数组
vector<int> odd_data,even_data; //奇数,偶数
可以除2余数是否为0判断奇偶
if (a[i]%2==0)
even_data.push_back(a[i]); //偶数
else
odd_data.push_back(a[i]); //奇数
排序采用冒泡排序法(此为从大到小排序:)
int i=0,j=0,t;
for(i=0;i!=dat.size();i++)
for (j=0;j!=dat.size()-i-1;j++)
if (dat[j]<dat[j+1] )
{
t=dat[j+1];
dat[j+1]=dat[j];
dat[j]=t;
}
最后输出效果: