解题思路:
使用C++中的STL库中的优先队列,使用结构体定义一个比较函数进行排序,之后在主函数中使用优先队列输出
注意事项:
注意结构体里边比较逻辑的写法,这是容易出错的地方
参考代码:
#include<iostream>
#include<queue>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
struct cmp{
bool operator()(int &a, int &b) const
{
//按照从绝对值大到小的顺序排列
return abs(a) < abs(b);
}
};
int main(){
int n, m;
while(cin >> n && n != 0){
priority_queue<int, vector<int>, cmp> q;
while(n--){
cin >> m;
q.push(m);
}
while(!q.empty()){
int temp = q.top();
q.pop();
cout << temp << " ";
}
cout << endl;
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.11 (C++代码)(有个库函数叫sqrt)浏览:863 |
C语言考试练习题_排列 (C语言代码)浏览:1326 |
【回文数(二)】 (C语言代码)浏览:730 |
字符串对比 (C语言代码)浏览:1413 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1311 |
剪刀石头布 (C语言代码)浏览:1753 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:840 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
Minesweeper (C语言描述,蓝桥杯)浏览:1126 |