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