NIKOLAY_TETUS

Lab_ex1_part3

May 11th, 2022
904
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.65 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. //Функции максимума и минимума
  5. #define MIN(a,b) (((a)<(b))?(a):(b))
  6. #define MAX(a,b) (((a)>(b))?(a):(b))
  7.  
  8. //Максимальный размер массива
  9. #define n 40
  10.  
  11. //Форма указателя-переменной
  12. int main()
  13. {
  14.     int elementsAmount = 0; //Количество элементов в массиве
  15.    
  16.     //Вводим количество элементов
  17.     printf("n>");
  18.     scanf("%d", &elementsAmount);
  19.    
  20.     //Проверяем количество элементов
  21.     if (elementsAmount > n || elementsAmount < 1)
  22.     {
  23.         //Выводим ошибку
  24.         printf("n должно быть <= %d", n);
  25.        
  26.         //Выходим из программы
  27.         return 0;
  28.     }
  29.    
  30.     //Инициализируем массив
  31.     int arr[n] = {};
  32.    
  33.     //Вводим элементы массива
  34.     for (int i = 0; i < elementsAmount; i++)
  35.         scanf("%d", &arr[i]);
  36.  
  37.     printf("Исходные данные:\n");
  38.     for (int i = 0; i < elementsAmount; i++)
  39.         printf("%d) %d\n", i, arr[i]);
  40.    
  41.     int *minP = arr,
  42.         *maxP = arr;
  43.    
  44.     for (int i = 0; i < elementsAmount; i++)
  45.     {
  46.         if (arr[i] > *(maxP))
  47.             maxP = &arr[i];
  48.        
  49.         if (arr[i] < *(minP))
  50.             minP = &arr[i];
  51.     }
  52.    
  53.     int it = 0;
  54.     int sum = 0;
  55.    
  56.     for (int *i = MIN(minP, maxP); i <= MAX(minP, maxP); i++)
  57.     {
  58.         sum += *(i);
  59.         it++;
  60.     }
  61.    
  62.     printf("Результат: %lf", (double)sum/(double)it);
  63.    
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment