【HDOJ】1106 排序
注意数据,末尾可能没有5,开头可能出现5,中间可能连续5.
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 #define MAXNUM 1005 6 7 char buf[MAXNUM]; 8 int nums[MAXNUM]; 9 10 int comp(const void *a, const void *b) { 11 return *(int *)a - *(int *)b; 12 } 13 14 int main() { 15 int i, j; 16 int tmp, len, n; 17 18 while (gets(buf) != NULL) { 19 len = strlen(buf); 20 n = tmp = j = 0; 21 while (buf[j] == '5') 22 j++; 23 for (i=j; i<len; ++i) { 24 if (buf[i]=='5') { 25 if (buf[i-1] != '5') 26 nums[n++] = tmp; 27 tmp = 0; 28 } else 29 tmp = 10*tmp+buf[i]-'0'; 30 } 31 if (buf[len-1] != '5') 32 nums[n++] = tmp; 33 qsort(nums, n, sizeof(int), comp); 34 printf("%d", nums[0]); 35 for (i=1; i<n; ++i) 36 printf(" %d", nums[i]); 37 printf("\n"); 38 } 39 40 return 0; 41 }
浙公网安备 33010602011771号