Hdu 1106 排序

题意要理解好。分割后的整数有若干零,则输出零。 

CODE:

#include <stdio.h>
#include <stdlib.h>
#include < string.h>
using  namespace std;

const  int maxn =  1001;
char s[maxn], save[maxn];

int a[maxn];


int cmp( const  void *a,  const  void *b)
{
     return *( int*)a- *( int*)b;
}

int main()
{
     int i, j;
     while(~scanf( " %s ", s))
    {
         int l = strlen(s);
         int tot1 =  0;
         int tot2 =  0;
        memset(a,  0sizeof(a));
        s[l] =  ' 5 ';                       // 确保有一个‘5‘,从而让最后得到最后被分割的数 
        s[l+ 1] =  ' \0 ';  
         for(i =  0 ; i < l+ 1; i++)
        {
             if(s[i] ==  ' 5 ')
            {
                save[tot1] =  ' \0 ';
                 if(save[tot1- 1] !=  ' \0 ')
                {
                    a[tot2++] = atoi(save);        // 只有一个’5‘的话,那么转换为整数。 
                }
                tot1 =  0;
            }
             else
            {
                save[tot1++] = s[i];
            }
        }
        qsort(a, tot2,  sizeof( int), cmp);
         for(i =  0; i < tot2 ;i++)
        {
            printf(i!=tot2- 1" %d  ": " %d\n ", a[i]);
        }
    }
     return  0;

} 

 

你可能感兴趣的:(HDU)