解题思路:由于map容器默认会对键进行升序排序,因而我们可以把绝对值作为键,最后对值输出就行了;
参考代码:
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <map> using namespace std; int main() { int n; while (~scanf("%d", &n) && n!=0) { map< int, int, greater<int> >myhash; //由于默认对键做升序排序,因此需要更改为降序; for(int i=0; i<n; i++) { int tmp; cin >> tmp; myhash[abs(tmp)] = tmp; } map<int, int>::iterator it; for(it=myhash.begin(); it!=myhash.end(); it++) cout<< it->second << " "; //最后输出值(it->first:输出键) cout << endl; } return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:1158 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:545 |
十->二进制转换 (C语言代码)浏览:1330 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:603 |
【出圈】 (C语言代码)浏览:824 |
简单的a+b (C语言代码)浏览:752 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:634 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:683 |
小O的数字 (C++代码)浏览:806 |