fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. typedef struct {
  5. int id;
  6. int height;
  7. int weight;
  8. } Body;
  9.  
  10. int main(void) {
  11. Body data[5]={
  12. {1,165,60},
  13. {2,170,60},
  14. {3,160,50},
  15. {4,180,75},
  16. {5,175,80}
  17. };
  18. int n=sizeof(data)/sizeof(data[0]);
  19.  
  20. for(int i=0;i<n-1;i++){
  21. for(int j=0;j<n-1-i;j++){
  22. if(data[j].height>data[j+1].height){
  23. Body tmp = data[j];
  24. data[j]=data[j+1];
  25. data[j+1]=tmp;
  26. }
  27. }
  28. }
  29. printf("ID height(cm) weight(kg)\n");
  30. for(int i=0; i<n;i++){
  31. printf("%2d %11d %13d\n",data[i].id,data[i].height,data[i].weight);
  32. }
  33. double sum = 0.0;
  34. for(int i=n-3;i<n;i++){
  35. sum+=data[i].height;
  36. }
  37. double ave=sum/3.0;
  38.  
  39. double sum_sq=0.0;
  40. for(int i=n-3;i<n;i++){
  41. double diff=data[i].height-ave;
  42. sum_sq+=diff*diff;
  43. }
  44. double std=sqrt(sum_sq/3.0);
  45.  
  46. printf("\n上位3名の身長平均:%.1f cm\n",ave);
  47. printf("上位3名の身長標準偏差:%.1f cm\n",std);
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
ID   height(cm)   weight(kg)
 3         160            50
 1         165            60
 2         170            60
 5         175            80
 4         180            75

上位3名の身長平均:175.0 cm
上位3名の身長標準偏差:4.1 cm