其实这道题目很简单,只要注意几个地方就行了。
1.5可以连续
2.结束既可以以5结束,也可以不一5结束。
#include <iostream>
#include <memory.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int cmp(const void *a,const void *b)
{
int *t1=(int *)a;
int *t2=(int *)b;
return *t1-*t2;
}
int main()
{
char a[1001];
while(cin >>a)
{
int i=0;
int t=0;
int cn[1000];
int len=strlen(a);
memset(cn,0,sizeof(cn));
while(i<len)
{
while(a[i]=='5' && i<len)
{
i++;
}
if(i==len)
break;
while(a[i]!='5' && i<len)
{
cn[t]=10*cn[t]+a[i]-'0';
i++;
}
t++;
}
qsort(cn,t,sizeof(cn[0]),cmp);
for(int i=0;i<t-1;i++)
cout <<cn[i]<<" ";
cout <<cn[t-1]<<endl;
}
return 0;
}
总结:做这样的题目时,要理清思路。
要判断连续字母时,可以用while循环。