hdu 1106 排序

这题要注意一下,字符串最后可能不是5的情况,这里容易遗漏!!!

代码如下:

#include"stdio.h"
#include"string.h"
#include"stdlib.h"

int num[1000],count;
char a[1005];

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


void convert(char *a)
{
 int i,s=0,state=0;
 for(i=0;a[i]!='\0';i++)
 {
  if(a[i]!='5')
  {
   s=s*10+a[i]-'0';
   state=1;
   if(a[i+1]=='\0')
    num[count++]=s;
  }
  else if(state==1&&a[i]=='5')
  {
   num[count++]=s;
   s=state=0;
  }
 }
}
  

int main( )
{
 int i;
 while(~scanf("%s",a))
 {
  count=0;
  convert(a);
  qsort(num,count,sizeof(int),cmp);
  for(i=0;i<count;i++)
  {
   if(i==0)
    printf("%d",num[i]);
   else
    printf(" %d",num[i]);
  }
  printf("\n");
 }
 return 0;
}

 

posted @ 2012-05-13 16:31  朝圣の路  阅读(200)  评论(0编辑  收藏  举报