fork download
  1.  
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5. typedef struct {
  6. int id;
  7. double height;
  8. double weight;
  9. } Body;
  10.  
  11. void sortByHeight(Body data[], int n) {
  12. for(int i = 0; i < n - 1; i++) {
  13. for(int j = i + 1; j < n; j++) {
  14. if(data[i].height > data[j].height) {
  15. Body temp = data[i];
  16. data[i] = data[j];
  17. data[j] = temp;
  18. }
  19. }
  20. }
  21. }
  22.  
  23. int main(void) {
  24. Body data[5] = {
  25. {1, 165, 60},
  26. {2, 170, 68},
  27. {3, 160, 50},
  28. {4, 180, 75},
  29. {5, 175, 80}
  30. };
  31.  
  32. int n = 5;
  33.  
  34. sortByHeight(data, n);
  35.  
  36. printf("ID\tHeight\tWeight\n");
  37. for(int i = 0; i < n; i++) {
  38. printf("%d\t%.0f\t%.0f\n", data[i].id, data[i].height, data[i].weight);
  39. }
  40.  
  41. double ave = 0.0, std = 0.0;
  42. for(int i = n - 3; i < n; i++) {
  43. ave += data[i].height;
  44. }
  45. ave /= 3;
  46.  
  47. for(int i = n - 3; i < n; i++) {
  48. std += pow(data[i].height - ave, 2);
  49. }
  50. std = sqrt(std / 3);
  51.  
  52. printf("\nAverage height (top 3): %.1f cm\n", ave);
  53. printf("Standard deviation: %.1f\n", std);
  54.  
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
ID	Height	Weight
3	160	50
1	165	60
2	170	68
5	175	80
4	180	75

Average height (top 3): 175.0 cm
Standard deviation: 4.1