fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main(void)
  5. {
  6. typedef struct {
  7. int id;
  8. int score;
  9. double ave;
  10. double std;
  11. } Grades;
  12.  
  13. Grades data[] = {
  14. {1, 70, 0.0, 0.0},
  15. {2, 65, 0.0, 0.0},
  16. {3, 80, 0.0, 0.0},
  17. {4, 75, 0.0, 0.0},
  18. {5, 60, 0.0, 0.0}
  19. };
  20.  
  21. int n = sizeof(data) / sizeof(data[0]);
  22. double sum = 0.0;
  23. double var = 0.0;
  24. int i;
  25.  
  26. for (i = 0; i < n; i++) {
  27. sum += data[i].score;
  28. }
  29. data[0].ave = sum / n;
  30.  
  31. for (i = 0; i < n; i++) {
  32. var += pow(data[i].score - data[0].ave, 2);
  33. data[0].std = sqrt(var / (n - 1));
  34.  
  35. printf("id:%d\n",data[i].id);
  36. printf("標本平均:%.1f\n", data[0].ave);
  37. printf("標本標準偏差:%.1f\n", data[0].std);
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
id:1
標本平均:70.0
標本標準偏差:0.0
id:2
標本平均:70.0
標本標準偏差:2.5
id:3
標本平均:70.0
標本標準偏差:5.6
id:4
標本平均:70.0
標本標準偏差:6.1
id:5
標本平均:70.0
標本標準偏差:7.9