View Code of Problem 3861

#include <stdio.h>

typedef struct node{
    char name[20];
    int p,q;
    double poq;
}phone;

int comp(const void* a,const void* b)
{
    phone* c = (phone*)a;
    phone* d = (phone*)b;
    return c->poq - d->poq;
}

int main(void)
{
    int t;
    while(scanf("%d",&t)!= EOF)
    {
        int n,i;
        phone pn[101];
        scanf("%d",&n);
        for(i = 0;i < n;i++)
        {
            scanf("%s%d%d",pn[i].name,&pn[i].p,&pn[i].q);
            pn[i].poq = pn[i].p / (double)pn[i].q;
        }
        qsort(pn,n,sizeof(phone),comp);
        for(i = 0;i< n;i++)
        {
            printf("%d %s %d %d\n",i + 1,pn[i].name,pn[i].p,pn[i].q);
        }
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 3861