按1的个数排序 Time Limit:1000MS Memory Limit:32768K
Description:
有一些01字串,将其按1的个数的多少的顺序进行输出。Sample Input:
10011111 00001101 1010101 1 0 1100
Sample Output:
0 1 1100 00001101 1010101 10011111
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[10000][256];
int cmp ( const void *a , const void *b )
{ char *x=(char *)a,*y=(char *)b;
int i=0,j=0,k;
k=0;
while(x[k]) {if(x[k]=='1') i++; k++;}
k=0;
while(y[k]) {if(y[k]=='1') j++; k++;}
//if ( strlen(x)!=strlen(y) ) return strlen(x)-strlen(y);
if (i!=j) return i-j;
return strcmp(x,y);
}
int main(int argc, char *argv[])
{ int i,n;
n=0;
while ( scanf("%s",s[n])!=EOF ) n++;
qsort(s,n,sizeof(s[0]),cmp);
for (i=0; i<n; i++)
printf("%s
",s[i]);
return 0;
}
**************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[10000][256];
int one(char *x)
{ int c=0,i=0;
while (x[i]!='