精挑细选(利用结构体)

  1. #include<stdio.h>  
  2. #include<stdlib.h>  
  3. struct Node  
  4. {  
  5.     int x;  
  6.     int y;  
  7.     int z;  
  8. }m[1000];  
  9.   
  10. int cmp(const void *p1,const void *p2)  
  11. {  
  12.     struct Node *c=(Node *)p1;  
  13.     struct Node *d=(Node *)p2;  
  14.     if(c->x!=d->x) return d->x-c->x;    //一级由大到小排序  
  15.     else if(c->y!=d->y) return c->y-d->y;//二级由小到大排序  
  16.     else return d->z-c->z;               //三级由大到小排序  
  17. }  
  18.   
  19. int main()  
  20. {  
  21.     int t,s;  
  22.     scanf("%d",&t);  
  23.     while(t--)  
  24.     {  
  25.         scanf("%d",&s);  
  26.         for(int i=0;i<s;i++)  
  27.         {  
  28.             scanf("%d %d %d",&m[i].x,&m[i].y,&m[i].z);  //将数据存入对应结构体//
  29.         }  
  30.         qsort(m,s,sizeof(m[0]),cmp);  //排序从吗【0】->sizeof(a[0])//
  31.         printf("%d\n",m[0].z);  
  32.     }  
  33.     return 0;  
  34. }  

选择使用结构体虽然是复杂了问题,但可以加深对数组结构体的了解,



猜你喜欢

转载自blog.csdn.net/lutowhite/article/details/80251806