多重排序

来源:互联网 发布:java中实现杨辉三角 编辑:程序博客网 时间:2024/05/17 08:19

学号和成绩,按成绩从小到大排序,成绩相同按学号从小到大排序

用 qsort(数组名,数组元素个数,sizeof(数组类型),cmp)

其中cmp是需要自己写的函数

#include<stdio.h>#include<stdlib.h> typedef struct  {      int y;      int x;  }NODE;  NODE node[101];int cmp(const void *a,const void *b)        {            if( ((NODE*)a)->x != ((NODE*)b)->x)            return  ((NODE*)a)->x > ((NODE*)b)->x ? 1 : -1;         else          return  ((NODE*)a)->y > ((NODE*)b)->y ? 1 : -1;        }   int main(){   int n,i,j;   while(scanf("%d",&n)!=EOF)   {     for(i=0;i<n;i++)       scanf("%d%d",&node[i].y,&node[i].x);     qsort(node,n,sizeof(NODE),cmp);      for(i=0;i<n;i++)      printf("%d %d\n",node[i].y,node[i].x);   }   return 0;  }        


原创粉丝点击