最简单的排序,没啥可说的,其中调用sort对结构体进行排序时要重载cmp
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
3 3 -4 2 4 0 1 2 -3 0
-4 3 2 -3 2 1 0
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct
{
int num;
int abs;
}ss;
bool cmp(ss s1,ss s2)
{
return s1.abs>s2.abs;
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
ss s[100];
for(int i=0;i<n;i++)
{
cin>>s[i].num;
if(s[i].num>=0)s[i].abs=s[i].num;
else s[i].abs=-1*s[i].num;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++)
if(i==n-1)cout<<s[i].num<<endl;
else cout<<s[i].num<<" ";
}
return 0;
}
本文介绍了一个简单的程序,用于实现对一组整数按照其绝对值大小从大到小进行排序的功能。程序通过读取多组输入数据,每组数据包含一个整数n及随后的n个整数,并使用自定义比较函数cmp来对整数结构体数组进行排序。
2867

被折叠的 条评论
为什么被折叠?



