fork download
  1. #include <stdio.h>
  2.  
  3. void input(int*, float*);
  4. float average(int*, float*);
  5. float variance(int*, float*);
  6. void output(int*, float*);
  7. void output_str(char*, float);
  8.  
  9. int main(){
  10. float a[1000];
  11. float var;
  12. int n;
  13. int *pn;
  14. float *pa;
  15. char *str;
  16.  
  17. pn = &n;
  18. pa = a;
  19. str = ("分散");
  20.  
  21. input(pn, pa);
  22. var = variance(pn, pa);
  23. output(pn, pa);
  24. output_str(str, var);
  25. return 0;
  26. }
  27.  
  28. void input(int*pn, float*pa){
  29. int i;
  30. printf("Input Number");
  31. scanf("%d", pn);
  32. for(i=0; i<*pn; i++){
  33. printf("Input Data=");
  34. scanf("%f", pa+i);
  35. }
  36. return;
  37. }
  38.  
  39. float average(int*pn, float*pa){
  40. int i;
  41. float sum = 0;
  42. float av;
  43.  
  44. for(i=0; i<*pn; i++){
  45. sum = sum+*(pa+i);
  46. }
  47.  
  48. av = sum/(*pn);
  49.  
  50. return av;
  51. }
  52.  
  53. float variance(int*pn, float*pa){
  54. int i;
  55. float av;
  56. float var;
  57. float sum = 0;
  58.  
  59. av = average(pn,pa);
  60.  
  61. for(i=0; i<*pn; i++){
  62. sum =sum+(*(pa+i)-av)*(*(pa+i)-av);
  63. }
  64.  
  65. var = sum/(*pn);
  66.  
  67. return var;
  68. }
  69.  
  70. void output(int*pn, float*pa){
  71. int i;
  72. for(i=0; i<*pn; i++){
  73. printf("%f\n",*(pa+i));
  74. }
  75. return;
  76. }
  77.  
  78. void output_str(char*str, float var){
  79.  
  80. printf("%s%f", str,var);
  81. return;
  82. }
Success #stdin #stdout 0.01s 5516KB
stdin
5
1
2
3
4
5
stdout
Input NumberInput Data=Input Data=Input Data=Input Data=Input Data=1.000000
2.000000
3.000000
4.000000
5.000000
分散2.000000