原题链接:信息学奥赛一本通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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复