01串多重比较

来源:互联网 发布:抢票的软件 编辑:程序博客网 时间:2024/06/01 19:15
#include<stdio.h>
struct num
{
    char a[256];
    int len;
    int num0;
    int as;
}str[100];


int main()


{   int i=0,j,k=0;
    struct num n;
    
    for(i=0;i<6;i++)
        gets(str[i].a);
     for(i=0;i<6;i++)
     {  j=0;
         str[i].len=strlen(str[i].a);
         str[i].num0=0;
         str[i].as=0;
         while(str[i].a[j]!='\0')
            {if(str[i].a[j]=='1')
              str[i].num0++;
            str[i].as+=(int)str[i].a[j];
    j++;
            }
     }
     for(i=0;i<5;i++)
        for(j=0;j<5-i;j++)
     {
         if(str[j].len>str[j+1].len)
         {
             n=str[j];
             str[j]=str[j+1];
             str[j+1]=n;
         }
         if(str[j].len==str[j+1].len)
         {
             if(str[j].num0>str[j+1].num0)
             {
                 n=str[j];
             str[j]=str[j+1];
             str[j+1]=n;
             }
             if(str[j].num0==str[j+1].num0)
             {
                 if(str[j].as>str[j+1].as)
                 {
                     n=str[j];
             str[j]=str[j+1];
             str[j+1]=n;
                 }
             }
         }
     }
     for(i=0;i<6;i++)
        printf("%s\n",str[i].a);
}
0 0