1. 程式人生 > >精挑細選(利用結構體)

精挑細選(利用結構體)

  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. }  

選擇使用結構體雖然是複雜了問題,但可以加深對陣列結構體的瞭解,