#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> typedef struct{ char name[20]; int p; int q; }phone; phone m[100]; int cmp(const void *a,const void *b) { phone *pa=(phone *)a; phone *pb=(phone *)b; float num1=pa->p/pa->q; float num2=pb->p/pb->q; if(num1>num2) { return -1; } else { return 1; } } int main() { int t,i,j; scanf("%d",&t); int k=t; while(k--) { j=1; int n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s%d%d",m[i].name,&m[i].p,&m[i].q); } qsort(m,n,sizeof(phone),cmp); for(i=0;i<n;i++) { printf("%d %s %d %d\n",j++,m[i].name,m[i].p,m[i].q); } } return 0; } |
Double click to view unformatted code.