fork(2) download
  1. // n個の実数x(i)をキーボードから読み込み、それらの平均と標準偏差を出力
  2. // するプログラムを作りなさい。
  3. // ただし、n個の実数の平均を求める関数mean(size,x[ ])と
  4. // 標準偏差を求める関数stdev(size,x[ ])を定義し、
  5. // これを用いること。
  6.  
  7. #include <stdio.h>
  8. #include <math.h>
  9.  
  10. #define MM 100 // データ数最大値
  11.  
  12. // 実数の平均を求める
  13. double mean(int size, double data[])
  14. {
  15. int i;
  16. double sum = 0;
  17.  
  18. for (i = 0; i < size; i++)
  19. sum += data[i];
  20. return sum / size;
  21. }
  22.  
  23. // 実数の標準偏差を求める
  24. double stdev(int size, double data[])
  25. {
  26. int i;
  27. double tsd = 0, m = mean(size, data), d;
  28.  
  29. for (i = 0; i < size; i++) {
  30. d = data[i] - m;
  31. tsd += d * d;
  32. }
  33. return sqrt(tsd / size);
  34. }
  35.  
  36. int main(){
  37. int n;
  38. double data[MM];
  39.  
  40. for (n = 0; n < MM; n++) {
  41. if (feof(stdin)) break;
  42. scanf("%lf", &data[n]);
  43. }
  44. printf("平均: %f\n", mean(n, data));
  45. printf("標準偏差: %f\n", stdev(n, data));
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 2252KB
stdin
1 2 3 4 5 6 7 8 9 10
stdout
平均: 5.500000
標準偏差: 2.872281