fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. #define MAX_SIZE 30
  6.  
  7. // Функция для вычисления среднего значения
  8. double calculate_mean(int *data, int size) {
  9. double sum = 0.0;
  10. for (int i = 0; i < size; i++) {
  11. sum += data[i];
  12. }
  13. return sum / size;
  14. }
  15.  
  16. // Функция для вычисления дисперсии
  17. double calculate_variance(int *data, int size, double mean) {
  18. double variance = 0.0;
  19. for (int i = 0; i < size; i++) {
  20. variance += (data[i] - mean) * (data[i] - mean);
  21. }
  22. return variance / size;
  23. }
  24.  
  25. // Функция для поиска нужного числа
  26. int search_value(int *data, int size, double mean, double threshold) {
  27. for (int i = 0; i < size; i++) {
  28. if (data[i] % 2 == 0 && data[i] >= mean && data[i] <= threshold && data[i] != 0) {
  29. return data[i];
  30. }
  31. }
  32. return 0; // Если не найдено удовлетворяющее условие число
  33. }
  34.  
  35. int main() {
  36. int data[MAX_SIZE];
  37. int size = 0;
  38.  
  39. // Чтение данных из stdin
  40. if (scanf("%d", &size) != 1 || size < 1 || size > MAX_SIZE) {
  41. printf("n/a\n");
  42. return 1; // Некорректный ввод
  43. }
  44.  
  45. for (int i = 0; i < size; i++) {
  46. if (scanf("%d", &data[i]) != 1) {
  47. printf("n/a\n");
  48. return 1; // Некорректный ввод
  49. }
  50. }
  51.  
  52. // Вычисление среднего и дисперсии
  53. double mean = calculate_mean(data, size);
  54. double variance = calculate_variance(data, size, mean);
  55. double threshold = mean + 3 * sqrt(variance);
  56.  
  57. // Поиск значения
  58. int result = search_value(data, size, mean, threshold);
  59. printf("%d\n", result);
  60.  
  61. return 0;
  62. }
Success #stdin #stdout 0.01s 5284KB
stdin
4
1 2 3 4
stdout
4