最简单的排序,没啥可说的,其中调用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;
}