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.  
  12. Body data[5]={
  13. {1,165,60},
  14. {2,170,68},
  15. {3,160,50},
  16. {4,180,75},
  17. {5,175,80},
  18. };
  19.  
  20. int n=5;
  21.  
  22. for(int i=0;i<n-1;i++){
  23. for(int j=0;j<n-i-1;j++){
  24. if(data[j].height > data[j+1].height){
  25. Body temp=data[j];
  26. data[j]=data[j+1];
  27. data[j+1]=temp;
  28. }
  29. }
  30. }
  31. printf("身長の低い順\n");
  32.  
  33. for(int i=0;i<n;i++){
  34. printf(" %d \ %d \ %d\n",data[i].id,data[i].height,data[i].weight);
  35. }
  36. printf("\n");
  37.  
  38. double sum=0;
  39. int count=3;
  40. int start=n-count;
  41.  
  42. for(int i=start;i<n;i++){
  43. sum += data[i].height;
  44. }
  45. double ave = sum/count;
  46.  
  47. double sumh=0;
  48. for(int i=start;i<n;i++){
  49. sumh += (data[i].height-ave)*(data[i].height-ave);
  50. }
  51. double std = sqrt(sumh/count);
  52.  
  53. printf("上位3名の平均:%.1f cm\n",ave);
  54. printf("上位3名の標準偏差:%.1f\n",std);
  55. return 0;
  56. }
  57.  
  58.  
  59.  
  60.  
  61.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
身長の低い順
 3  160  50
 1  165  60
 2  170  68
 5  175  80
 4  180  75

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