字符串真心伤不起啊,各种小细节,首先开头和结尾的5很特殊(看你从那头开始处理),另外就是注意可能有连续的5出现,代码如下:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main()
{
int r[1010];
char t[1010];
while(cin>>t+1){
t[0]='5';
int len=strlen(t),num,w,k=0;
for(int i=len-1,num=0,w=1;i>=0;i--){
if((t[i]=='5'&&t[i+1]=='5')||(t[i]=='5'&&t[i+1]=='\0')) continue;
else if(t[i]=='5') {r[k++]=num;num=0;w=1;}
else {
num+=(t[i]-'0')*w;
w*=10;
}
}
sort(r,r+k);
for(int i=0;i<k;i++){
if(i==k-1) cout<<r[i]<<endl;
else cout<<r[i]<<" ";
}
memset(r,0,sizeof(r));
memset(t,0,sizeof(t));
}
return 0;
}