fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. struct kilpailijat //The structure im using
  6. {
  7. char nimi[43+1];
  8. float aika;
  9. };
  10.  
  11. int compare (const void * a, const void * b)
  12. {
  13. float f1 = ((struct kilpailijat *)a)->aika;
  14. float f2 = ((struct kilpailijat *)b)->aika;
  15. int result = 0;
  16. if (f1 < f2)
  17. {
  18. result = -1;
  19. }
  20. else if (f1 > f2)
  21. {
  22. result = 1;
  23. }
  24. return result;
  25. }
  26.  
  27. void printArray(struct kilpailijat * array, int size)
  28. {
  29. for (int i = 0; i < size; i++)
  30. {
  31. printf("%s - %0.2f\n", array[i].nimi, array[i].aika);
  32. }
  33. }
  34.  
  35. int main()
  36. {
  37. int maara = 3;
  38. struct kilpailijat henkilo[50];
  39. // Populate the array with fake elements
  40. strcpy(henkilo[0].nimi, "Runner 1");
  41. henkilo[0].aika = 101.2f;
  42. strcpy(henkilo[1].nimi, "Runner 2");
  43. henkilo[1].aika = 101.1f;
  44. strcpy(henkilo[2].nimi, "Runner 3");
  45. henkilo[2].aika = 99.9f;
  46.  
  47. printArray(henkilo, maara);
  48. printf("\n-----\n\n");
  49. // Sort the array
  50. qsort (henkilo, maara, sizeof(kilpailijat), compare);
  51. printArray(henkilo, maara);
  52.  
  53. return 0;
  54. }
Success #stdin #stdout 0s 2896KB
stdin
Standard input is empty
stdout
Runner 1 - 101.20
Runner 2 - 101.10
Runner 3 - 99.90

-----

Runner 3 - 99.90
Runner 2 - 101.10
Runner 1 - 101.20