杭电ACM-2020

2017-01-22  本文已影响0人  1QzUPm_09F

题目:

2020题

代码:

#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<stdlib.h>
using namespace std;
struct st
{
    int num;
    int origin;
}b[1000];
bool cmp(st a,st b)
{
    return a.num>b.num;
}
int main()
{
    int n,a[1000],i;
    while(~scanf("%d",&n))
    {
        if(n==0)
            return 0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            b[i].origin=a[i];
            if(a[i]<0)
            {
                b[i].num=0-a[i];
            }
            else
            {
                b[i].num=a[i];
            }
        }
        sort(b,b+n,cmp);
        for(i=0;i<n;i++)
        {
            if(i!=0)
                printf(" ");
            printf("%d",b[i].origin);
        }
        printf("\n");
    }
    return 0;
}

注意:此题为结构体排序 对 绝对值数列的排序的典型题目!!!

上一篇下一篇

猜你喜欢

热点阅读