内存:128  时间:1

题目描述

现在给你一组数字,要求你把每一个数字逆序(如123变为321)之后进行排序,按从小到大的顺序排列;

输入

第一行一个数字T(T<20),表示共有T组测试数据。

下面T行:每组开始有一个数字X(X<20),表示该组有X个数字,后面是该组的X(x<10000)个数字。

输出

每组数据输出一行,输出按从小到大排列好的数字。

样例输入

2
4 12 23 15 10
3 123 911 119

样例输出

1 21 32 51
119 321 911

提示

可按4位数、3位数、2位数、1位数分情况处理

代码如下

#include <iostream>
#include<stdio.h>
#include<algorithm>
#include <math.h>
using namespace std;
int main()
{
    int num[30];
    int t;
    int x,temp,qtemp;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&x);
        for(int i=0;i<x;i++)
        {
            scanf("%d",&temp);
            if((temp/1000)!=0)
            {
                num[i]=(temp%10)*1000+(temp/10)%10*100+(temp/100)%10*10+temp/1000;
            }
            else if((temp/100)!=0)
            {
                num[i]=(temp%10)*100+(temp/10)%10*10+temp/100;
            }
            else if((temp/10)!=0)
            {
                num[i]=(temp%10)*10+temp/10;
            }
            else
            {
                num[i]=temp;
            }
        }
        sort(num,num+x);
        for(int i=0;i<x;i++)
        {
            printf(i==x-1?"%d
":"%d ",num[i]);
        }
    }

    return 0;
}

代码来源于互联网,仅供参考!