#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct kilpailijat //The structure im using
{
char nimi[43+1];
float aika;
};
int compare (const void * a, const void * b)
{
float f1 = ((struct kilpailijat *)a)->aika;
float f2 = ((struct kilpailijat *)b)->aika;
int result = 0;
if (f1 < f2)
{
result = -1;
}
else if (f1 > f2)
{
result = 1;
}
return result;
}
void printArray(struct kilpailijat * array, int size)
{
for (int i = 0; i < size; i++)
{
printf("%s - %0.2f\n", array[i].nimi, array[i].aika);
}
}
int main()
{
int maara = 3;
struct kilpailijat henkilo[50];
// Populate the array with fake elements
strcpy(henkilo[0].nimi, "Runner 1");
henkilo[0].aika = 101.2f;
strcpy(henkilo[1].nimi, "Runner 2");
henkilo[1].aika = 101.1f;
strcpy(henkilo[2].nimi, "Runner 3");
henkilo[2].aika = 99.9f;
printArray(henkilo, maara);
printf("\n-----\n\n");
// Sort the array
qsort (henkilo, maara, sizeof(kilpailijat), compare);
printArray(henkilo, maara);
return 0;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKc3RydWN0IGtpbHBhaWxpamF0ICAgICAvL1RoZSBzdHJ1Y3R1cmUgaW0gdXNpbmcKewogICAgY2hhciBuaW1pWzQzKzFdOwogICAgZmxvYXQgYWlrYTsKfTsKCmludCBjb21wYXJlIChjb25zdCB2b2lkICogYSwgY29uc3Qgdm9pZCAqIGIpCnsKICAgIGZsb2F0IGYxID0gKChzdHJ1Y3Qga2lscGFpbGlqYXQgKilhKS0+YWlrYTsKICAgIGZsb2F0IGYyID0gKChzdHJ1Y3Qga2lscGFpbGlqYXQgKiliKS0+YWlrYTsKICAgIGludCByZXN1bHQgPSAwOwogICAgaWYgKGYxIDwgZjIpIAogICAgewogICAgICAgIHJlc3VsdCA9IC0xOwogICAgfQogICAgZWxzZSBpZiAoZjEgPiBmMikgCiAgICB7CiAgICAgICAgcmVzdWx0ID0gMTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCnZvaWQgcHJpbnRBcnJheShzdHJ1Y3Qga2lscGFpbGlqYXQgKiBhcnJheSwgaW50IHNpemUpIAp7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgCiAgICB7CiAgICAgICAgcHJpbnRmKCIlcyAtICUwLjJmXG4iLCBhcnJheVtpXS5uaW1pLCBhcnJheVtpXS5haWthKTsKICAgIH0KfQoKaW50IG1haW4oKSAKewogICAgaW50IG1hYXJhID0gMzsKICAgIHN0cnVjdCBraWxwYWlsaWphdCBoZW5raWxvWzUwXTsKICAgIC8vIFBvcHVsYXRlIHRoZSBhcnJheSB3aXRoIGZha2UgZWxlbWVudHMKICAgIHN0cmNweShoZW5raWxvWzBdLm5pbWksICJSdW5uZXIgMSIpOwogICAgaGVua2lsb1swXS5haWthID0gMTAxLjJmOwogICAgc3RyY3B5KGhlbmtpbG9bMV0ubmltaSwgIlJ1bm5lciAyIik7CiAgICBoZW5raWxvWzFdLmFpa2EgPSAxMDEuMWY7CiAgICBzdHJjcHkoaGVua2lsb1syXS5uaW1pLCAiUnVubmVyIDMiKTsKICAgIGhlbmtpbG9bMl0uYWlrYSA9IDk5LjlmOwogICAgCiAgICBwcmludEFycmF5KGhlbmtpbG8sIG1hYXJhKTsKICAgIHByaW50ZigiXG4tLS0tLVxuXG4iKTsKICAgIC8vIFNvcnQgdGhlIGFycmF5CiAgICBxc29ydCAoaGVua2lsbywgbWFhcmEsIHNpemVvZihraWxwYWlsaWphdCksIGNvbXBhcmUpOwogICAgcHJpbnRBcnJheShoZW5raWxvLCBtYWFyYSk7CiAgICAKICAgIHJldHVybiAwOwp9