翻转排序

来源:互联网 发布:手机信号网络差的原因 编辑:程序博客网 时间:2024/05/16 00:57

翻转排序

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

给你一组正整数,请编写一个程序把每个整数翻转,然后按升序排序输出,翻转后前面的零要消掉。

输入

第一个整数n1≤n≤106)表明有多少个数字需要处理,接下来是n个整数。整数已空格分开,每行可以有任意多的整数。输入的整数≤1012

输出

n行排好序的整数。

示例输入

10 5 2233 1601 90100 13009 802 50000000 301 7654321 210

示例输出

5 5 12 103 109 208 1061 3322 90031 1234567

提示

 

来源

中国海洋大学第四届朗讯杯初级组

示例程序

 
#include<stdio.h>  #include<math.h>  long long a[1000000];  int main()  {      long long i,j,n,m,b[15],k,t,l,h;      scanf("%d",&n);      for(i=0;i<n;i++)      {          scanf("%lld",&a[i]);          for(j=0;a[i]>=1;j++)          {              b[j]=a[i]%10;              a[i]=a[i]/10;          }          a[i]=0;          for(l=j-1,h=0;l>=0,h<j;l--,h++)          {              a[i]+=b[h]*pow(10,l);          }      }      for(i=0;i<n-1;i++)      {          k=i;          for(j=i+1;j<n;j++)              if(a[k]>a[j])                  k=j;              if(k!=i)              {                  t=a[k];                  a[k]=a[i];                  a[i]=t;              }      }      for(i=0;i<n;i++)          printf("%lld\n",a[i]);  }  

0 0
原创粉丝点击