View Code of Problem 82

#include <stdio.h>

typedef struct node{
    char num[100],name[100];
    int score[3],sum;
}student;

int comp(const void* a,const void* b)
{
    student* c = (student*)a;
    student* d = (student*)b;
    return d->sum - c->sum;
}
int main(void)
{
    int n,i,j;
    while(scanf("%d",&n) != EOF)
    {
        student stu[100];
        int sum[3] = {0};
        for(i = 0;i < n;i++)
        {
            scanf("%s%s%d%d%d",stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
            stu[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];
        }
        for(i = 0;i < n;i++)
        {
            sum[0] += stu[i].score[0];
            sum[1] += stu[i].score[1];
            sum[2] += stu[i].score[2];
        }
        qsort(stu,n,sizeof(student),comp);
        printf("%d %d %d\n",sum[0] / n,sum[1] / n,sum[2] / n);
        printf("%s %s %d %d %d\n",stu[0].num,stu[0].name,stu[0].score[0],stu[0].score[1],stu[0].score[2]);
    }
}

Double click to view unformatted code.


Back to problem 82