fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3. typedef struct{
  4. int id;
  5. int height;
  6. int weight;
  7. }Body;
  8.  
  9. int main()
  10. {
  11. int n=5;
  12.  
  13. Body data[5]={
  14. {1, 165, 60},
  15. {2, 170, 68},
  16. {3, 160, 50},
  17. {4, 180, 75},
  18. {5, 175, 80}
  19. };
  20.  
  21. for(int i=0; i<=n-1;i++){
  22. for(int j=0; j<n-1; j++){
  23. if(data[j].height > data[j+1].height){
  24. Body temp =data[j];
  25. data[j]=data[j+1];
  26. data[j+1]=temp;
  27. }
  28. }
  29. }
  30.  
  31. printf("身長の低い順 :\n");
  32. for (int i = 0; i < n; i++) {
  33. printf("ID: %d, Height: %d, Weight: %d\n", data[i].id, data[i].height, data[i].weight);
  34. }
  35. double sum = 0.0;
  36. for (int i = n - 3; i < n; i++) {
  37. //n-3からnまでの3つの数を3で割る
  38. sum += data[i].height;
  39. }
  40. double ave = sum / 3.0;
  41.  
  42. double variance = 0.0;
  43. for (int i = n - 3; i < n; i++) {
  44. variance += pow(data[i].height - ave, 2);
  45. //偏差を出してpowはその差を2乗する
  46. }
  47. double std = sqrt(variance / 3.0);
  48. // 分散を数で割ったものが標準偏差
  49. printf("\n平均身長: %.1f cm\n", ave);
  50. printf("標準偏差: %.1f cm\n", std);
  51.  
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
身長の低い順 :
ID: 3, Height: 160, Weight: 50
ID: 1, Height: 165, Weight: 60
ID: 2, Height: 170, Weight: 68
ID: 5, Height: 175, Weight: 80
ID: 4, Height: 180, Weight: 75

平均身長: 175.0 cm
標準偏差: 4.1 cm