fork download
  1. #include <stdio.h>
  2.  
  3. #define NMAX 10
  4.  
  5. int input(int *a, int *n);
  6. void output(int *a, int n);
  7. int max(int *a, int n);
  8. int min(int *a, int n);
  9. double mean(int *a, int n);
  10. double variance(int *a, int n);
  11.  
  12. void output_result(int max_v,
  13. int min_v,
  14. double mean_v,
  15. double variance_v);
  16.  
  17. int main() {
  18. int n, data[NMAX];
  19. if (input(data, &n)) {
  20. output(data, n);
  21. if (n > 0) {
  22. output_result(max(data, n),
  23. min(data, n),
  24. mean(data, n),
  25. variance(data, n));
  26.  
  27. } else {
  28. printf("n/a\n");
  29. }
  30.  
  31. } else {
  32. printf("n/a\n");
  33. }
  34.  
  35. return 0;
  36. }
  37.  
  38. int input(int *a, int *n) {
  39. if (scanf("%d", n) != 1 || *n <= 0 || *n > NMAX) {
  40. return 0;
  41. }
  42. for (int i = 0; i < *n; i++) {
  43. if (scanf("%d", &a[i]) != 1) {
  44. return 0;
  45. }
  46. }
  47. return 1;
  48. }
  49.  
  50. void output(int *a, int n) {
  51. if (n > 0) {
  52. for (int i = 0; i < n; i++) {
  53. printf("%d", a[i]);
  54. if (i < n - 1) {
  55. printf(" ");
  56. }
  57. }
  58. printf("\n");
  59. }
  60. }
  61.  
  62. int max(int *a, int n) {
  63. int max_v = a[0];
  64. for (int i = 1; i < n; i++) {
  65. if (a[i] > max_v) {
  66. max_v = a[i];
  67. }
  68. }
  69. return max_v;
  70. }
  71.  
  72. int min(int *a, int n) {
  73. int min_v = a[0];
  74. for (int i = 1; i < n; i++) {
  75. if (a[i] < min_v) {
  76. min_v = a[i];
  77. }
  78. }
  79. return min_v;
  80. }
  81.  
  82. double mean(int *a, int n) {
  83. double sum = 0.0;
  84. for (int i = 0; i < n; i++) {
  85. sum += a[i];
  86. }
  87. return sum / n;
  88. }
  89.  
  90. double variance(int *a, int n) {
  91. double avg = mean(a, n);
  92. double sum_sq_diff = 0.0;
  93. for (int i = 0; i < n; i++) {
  94. sum_sq_diff += (a[i] - avg) * (a[i] - avg);
  95. }
  96. return sum_sq_diff / n;
  97. }
  98.  
  99. void output_result(int max_v,
  100. int min_v,
  101. double mean_v,
  102. double variance_v) {
  103. printf("%d\n", max_v);
  104. printf("%d\n", min_v);
  105. printf("%.6f\n", mean_v);
  106. printf("%.6f\n", variance_v);
  107. }
Success #stdin #stdout 0.01s 5284KB
stdin
4
1 2 3 4
stdout
1 2 3 4
4
1
2.500000
1.250000