PAT Basic Level 1023
AC代码
1 #include <stdio.h> 2 #include <string.h> 3 int cmp (const void *a,const void *b) 4 { 5 return *(char*)a - *(char*)b; 6 } 7 int main () //思考一个问题如果达到一定界点进位怎么计算 8 { 9 int box[10]; 10 int i ; 11 for(i = 0;i < 10;i++) 12 { 13 scanf("%d",&box[i]); 14 } 15 int size; 16 char input[51]; 17 int i2 = 0; ; //指向 input 18 for(i = 0;i < 10;i++) 19 { 20 while(box[i] > 0) 21 { 22 input[i2] = i + '0'; 23 i2++; 24 box[i]--; 25 } 26 } 27 input[i2] = '\0'; 28 size = strlen(input); 29 qsort(input,size,sizeof(input[0]),cmp); 30 while(input[0] == '0') 31 { 32 int i; 33 for(i = 0;i < size;i++) 34 { 35 if(input[i] != '0') 36 { 37 input[0] = input[i]; 38 input[i] = '0'; 39 break; 40 } 41 42 } 43 44 } 45 printf("%s",input); 46 return 0 ; 47 48 }