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

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;

} 

 

posted on 2012-07-17 20:40  有间博客  阅读(136)  评论(0编辑  收藏  举报