原题链接:信息学奥赛一本通T1181-整数奇偶排序
解题思路:
先排序,在把排序好的元素遍历,如果是奇数,就插在一个新的容器的前面,如果是偶数,就插在后面,可以用STL中的list容器或者vetor容器实现,也可以先遍历元素,把是奇数的元素和是偶数的元素分别放到两个数组中,在分别排序,奇数从大到小,偶数从小到大,再按照题目的格式输出就行,以下给出用list容器实现的代码供参考。
注意事项:
参考代码:
//list
#include<bits/stdc++.h>
using namespace std;
list<int>lt1;
list<int>lt2;
int main() {
for(int i = 1; i<=10;i++)
{
int x;
cin>>x;
lt1.push_back(x);
}
lt1.sort();
list<int>::iterator it;
for(it = lt1.begin();it!=lt1.end();it++)
{
if(*it%2==1)
lt2.push_front(*it);
else
lt2.push_back(*it);
}
for(it = lt2.begin();it!=lt2.end();it++)
cout<<*it<<" ";
return 0;
}
//普通数组
#include<bits/stdc++.h>
using namespace std;
int a[15];
int b[15];
int main() {
int an=0,bn=0;
for(int i = 1;i<=10;i++) {
int x;
cin>>x;
if(x%2==1)
a[++an] = x;
else
b[++bn] = x;
}
sort(a+1,a+an+1,greater<int>());
sort(b+1,b+bn+1);
for(int i = 1;i<=an;i++)
cout<<a[i]<<" ";
for(int i = 1; i<=bn;i++)
cout<<b[i]<<" ";
return 0;
}0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复