c语言 多重排序

经过了两天,终于会了。

#include<stdio.h>

#include<string.h>

struct A

{

 char name[100];

 int gread;

} stu[100];

void fact(int n)

{  

   int i,j,teap;

char w[100];    

for(i=1;i<=n;i++)    

     for(j=2;j<=n;j++)  

    {   

  if(stu[j-1].gread>stu[j].gread)     

    teap=stu[j-1].gread,stu[j-1].gread=stu[j].gread,stu[j].gread=teap;

    else    

{      

   if(strcmp(stu[j-1].name,stu[j].name)>0)         

    strcpy(w,stu[j-1].name),strcpy(stu[j-1].name,stu[j].name),strcpy(stu[j].name,w);  

   }

     }

}

int main()

{

    int n,i;

    scanf("%d",&n);   

  for(i=1;i<=n;i++)  

scanf("%s",&stu[i].name);

 scanf("%d",&stu[i].gread);

}    

fact(n);  

      for(i=1;i<=n;i++)    

     printf("%s\n",stu[i].name);    

return 0;

}

posted @ 2013-11-05 16:54  X-C++  阅读(605)  评论(4编辑  收藏  举报