HDU 1106 排序

来源:互联网 发布:平安证券java面试 编辑:程序博客网 时间:2024/05/21 09:38

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1106


字符串的拆分+排序


#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>//整型数组排序int cmp(const void *a,const void *b)  { return *(int *)a-*(int *)b;}int main(){ //ca 存储输入内容;ib 存储转化后的整型数;j 表示10的指数;k表示整型数组的实际长度 char ca[1010]; int ib[1000],i,j,k,n,sum;  while (scanf("%s",&ca)!=EOF) {       n=strlen(ca);       sum=0;j=0;k=0;       for (i=n-1;i>=0;i--)         {           if (ca[i]=='5')  //遇到5则把sum存到整型数组ib中           {                if (j!=0)  //排除多个5并存               {                    ib[k]=sum;k++;                    sum=0;j=0;               }               continue;           }               sum=sum+(ca[i]-48)*pow(10,j);  //将字符型转化成整型,便于存储、比较           j++;            if (i==0)         {            ib[k]=sum;k++;         }     }  qsort(ib,k,sizeof(ib[0]),cmp); //排序    printf("%d",ib[0]);  for (i=1;i<k;i++)  {   printf(" %d",ib[i]);  }  printf("\n"); } return 0;}


0 0
原创粉丝点击