hdu1106

这个题目需要注意初始化问题,还有前导和后导是否有5的许多种情况


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

char str[1010],temp[1010];
int ans[1010],p;

void deal(){
    int tempans=atoi(temp);
    ans[p++]=tempans;
}

int main()
{
    while(scanf("%s",str)!=EOF)
    {
        getchar();
        int len=strlen(str);
        memset(ans,0,sizeof(ans));
        memset(temp,'\0',sizeof(temp));
        int pos=0,tag=0;
        p=0;
        for(int i=0;i<len;i++){
            if(str[i]=='5'&&tag==0){
                pos=0;
                continue;
            }
            else if(str[i]=='5'){
                pos=0;
                deal();
                tag=0;
                memset(temp,'\0',sizeof(temp));
            }
            else{
                temp[pos++]=str[i];
                tag=1;
            }


        }

        if(pos!=0)
            deal();

        sort(ans,ans+p);

        printf("%d",ans[0]);
        for(int i=1;i<p;i++)
            printf(" %d",ans[i]);
        puts("");
    }
    return 0;
}


你可能感兴趣的:(hdu1106)