linus666

3

Apr 15th, 2025
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.65 KB | Cybersecurity | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define MAX_SIZE 10
  5.  
  6. int input(int *array, int *size);
  7. void output(const int *array, int size);
  8. int find_max(const int *array, int size);
  9. int find_min(const int *array, int size);
  10. double calculate_mean(const int *array, int size);
  11. double calculate_variance(const int *array, int size);
  12. void output_statistics(int max_value, int min_value, double mean_value, double variance_value);
  13.  
  14. int main() {
  15.     int size;
  16.     int numbers[MAX_SIZE];
  17.     int input_result;
  18.  
  19.     input_result = input(numbers, &size);
  20.     if (input_result == 0) {
  21.         output(numbers, size);
  22.         output_statistics(
  23.             find_max(numbers, size),
  24.             find_min(numbers, size),
  25.             calculate_mean(numbers, size),
  26.             calculate_variance(numbers, size)
  27.         );
  28.     } else {
  29.         printf("n/a");
  30.         return 1;
  31.     }
  32.  
  33.     return 0;
  34. }
  35.  
  36. int input(int *array, int *size) {
  37.     if (scanf("%d", size) != 1 || *size <= 0 || *size > MAX_SIZE) {
  38.         return 1;
  39.     }
  40.  
  41.     char separator;
  42.     for (int i = 0; i < *size; i++) {
  43.         if (scanf("%d", &array[i]) != 1) {
  44.             return 1;
  45.         }
  46.  
  47.         separator = getchar();
  48.         if (i < *size - 1 && separator != ' ') {
  49.             return 1;
  50.         } else if (i == *size - 1 && separator != '\n') {
  51.             return 1;
  52.         }
  53.     }
  54.  
  55.     return 0;
  56. }
  57.  
  58. void output(const int *array, int size) {
  59.     for (int i = 0; i < size; i++) {
  60.         printf("%d", array[i]);
  61.         if (i < size - 1) {
  62.             printf(" ");
  63.         }
  64.     }
  65. }
  66.  
  67. int find_max(const int *array, int size) {
  68.     int max_value = array[0];
  69.     for (int i = 1; i < size; i++) {
  70.         if (array[i] > max_value) {
  71.             max_value = array[i];
  72.         }
  73.     }
  74.     return max_value;
  75. }
  76.  
  77. int find_min(const int *array, int size) {
  78.     int min_value = array[0];
  79.     for (int i = 1; i < size; i++) {
  80.         if (array[i] < min_value) {
  81.             min_value = array[i];
  82.         }
  83.     }
  84.     return min_value;
  85. }
  86.  
  87. double calculate_mean(const int *array, int size) {
  88.     double sum = 0.0;
  89.     for (int i = 0; i < size; i++) {
  90.         sum += array[i];
  91.     }
  92.     return sum / size;
  93. }
  94.  
  95. double calculate_variance(const int *array, int size) {
  96.     double mean = calculate_mean(array, size);
  97.     double sum_squared_diff = 0.0;
  98.  
  99.     for (int i = 0; i < size; i++) {
  100.         sum_squared_diff += pow(array[i] - mean, 2);
  101.     }
  102.  
  103.     return sum_squared_diff / size;
  104. }
  105.  
  106. void output_statistics(int max_value, int min_value, double mean_value, double variance_value) {
  107.     printf("\n%d %d %.6f %.6f", max_value, min_value, mean_value, variance_value);
  108. }
  109.  
Advertisement
Add Comment
Please, Sign In to add comment