#include <stdio.h>
#include <stdlib.h>
#define TEAM_SIZE 10
typedef struct {
char name[TEAM_SIZE];
int points;
} TEAM;
int compare_points(const void *a, const void *b)
{
const TEAM *p1 = a;
const TEAM *p2 = b;
return p2->points < p1->points ? -1 : p1->points < p2->points;
}
int main()
{
TEAM teams[] =
{
{ "OB", 46 }, { "AGF", 37 },
{ "AAB", 50 }, { "FCK", 71 },
{ "HOB", 18 }, { "SDR", 62 },
{ "RFC", 47 }, { "BIF", 54 },
{ "EFB", 30 }, { "VFF", 40 }
};
size_t NUM_TEAMS = sizeof teams / sizeof *teams;
qsort(teams
, NUM_TEAMS
, sizeof(TEAM
), compare_points
);
for (size_t i=0; i< NUM_TEAMS; ++i)
printf("%s : %d\n", teams
[i
].
name, teams
[i
].
points);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgVEVBTV9TSVpFIDEwCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBjaGFyIG5hbWVbVEVBTV9TSVpFXTsKICAgIGludCBwb2ludHM7Cn0gVEVBTTsKCgppbnQgY29tcGFyZV9wb2ludHMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKewogICAgY29uc3QgVEVBTSAqcDEgPSBhOwogICAgY29uc3QgVEVBTSAqcDIgPSBiOwogICAgcmV0dXJuIHAyLT5wb2ludHMgPCBwMS0+cG9pbnRzID8gLTEgOiBwMS0+cG9pbnRzIDwgcDItPnBvaW50czsKfQoKaW50IG1haW4oKQp7CiAgICBURUFNIHRlYW1zW10gPQogICAgewogICAgICAgIHsgIk9CIiwgIDQ2IH0sIHsgIkFHRiIsIDM3IH0sCiAgICAgICAgeyAiQUFCIiwgNTAgfSwgeyAiRkNLIiwgNzEgfSwKICAgICAgICB7ICJIT0IiLCAxOCB9LCB7ICJTRFIiLCA2MiB9LAogICAgICAgIHsgIlJGQyIsIDQ3IH0sIHsgIkJJRiIsIDU0IH0sCiAgICAgICAgeyAiRUZCIiwgMzAgfSwgeyAiVkZGIiwgNDAgfQogICAgfTsKICAgIAogICAgc2l6ZV90IE5VTV9URUFNUyA9IHNpemVvZiB0ZWFtcyAvIHNpemVvZiAqdGVhbXM7CiAgICAKICAgIHFzb3J0KHRlYW1zLCBOVU1fVEVBTVMsIHNpemVvZihURUFNKSwgY29tcGFyZV9wb2ludHMpOwogICAgCiAgICBmb3IgKHNpemVfdCBpPTA7IGk8IE5VTV9URUFNUzsgKytpKQogICAgICAgIHByaW50ZigiJXMgOiAlZFxuIiwgdGVhbXNbaV0ubmFtZSwgdGVhbXNbaV0ucG9pbnRzKTsKCiAgICByZXR1cm4gMDsKfQ==