fork(2) download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. typedef struct {
  5. int id;
  6. double height;
  7. double weight;
  8. } Body;
  9.  
  10. int main(void) {
  11. Body data[5] = {
  12. {1, 165, 60},
  13. {2, 170, 68},
  14. {3, 160, 50},
  15. {4, 180, 75},
  16. {5, 175, 80}
  17. };
  18.  
  19. // --- 身長の昇順に並び替え(単純バブルソート) ---
  20. for (int i = 0; i < 5 - 1; i++) {
  21. for (int j = i + 1; j < 5; j++) {
  22. if (data[i].height > data[j].height) {
  23. Body tmp = data[i];
  24. data[i] = data[j];
  25. data[j] = tmp;
  26. }
  27. }
  28. }
  29.  
  30. // --- 並び替え後の結果を表示 ---
  31. printf("id height weight\n");
  32. for (int i = 0; i < 5; i++) {
  33. printf("%d %.0f %.0f\n", data[i].id, data[i].height, data[i].weight);
  34. }
  35.  
  36. // --- 下から3人の平均と標準偏差 ---
  37. double sum = 0.0;
  38. for (int i = 2; i < 5; i++) sum += data[i].height;
  39. double ave = sum / 3.0;
  40.  
  41. double var = 0.0;
  42. for (int i = 2; i < 5; i++) var += pow(data[i].height - ave, 2);
  43. double std = sqrt(var / 3.0);
  44.  
  45. printf("\nAverage height (top 3): %.1f cm\n", ave);
  46. printf("Standard deviation: %.1f cm\n", std);
  47.  
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0s 5296KB
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 cm