Advertisement
FaDaQ

Untitled

Mar 3rd, 2022
708
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. float findMinPos(float* p, int n) {
  7.     int imin;
  8.     int min = p[0]; //принимаем 1-й элемент за минимальный
  9.     for (int i = 0; i < n; i++) // поиск
  10.         if (p[i] < min) //минимального
  11.         {
  12.             min = p[i]; //элемента
  13.             imin = i;
  14.         }
  15.     return imin;
  16. }
  17.  
  18. float findMin(float* p, int n) {
  19.     int min = p[0]; //принимаем 1-й элемент за минимальный
  20.     for (int i = 0; i < n; i++) // поиск
  21.         if (p[i] < min) //минимального
  22.         {
  23.             min = p[i]; //элемента
  24.         }
  25.     return min;
  26. }
  27.  
  28. float findFirstSubZero(float* p, int n) {
  29.     float ibeg = NULL;
  30.     for (int i = 0; i < n; i++) //поиск
  31.         if (p[i] < 0) //первого
  32.         {
  33.             ibeg = i; //отрицательного
  34.             break; //элемента
  35.         }
  36.     if (ibeg != NULL) {
  37.         return ibeg;
  38.     }
  39.     else
  40.     {
  41.         return NULL;
  42.     }
  43. }
  44.  
  45. float findSecondSubZero(float* p, int n, int ibeg) {
  46.     int iend = NULL;
  47.     for (int i = ibeg + 1; i < n; i++) //поиск
  48.         if (p[i] < 0) //второго
  49.         {
  50.             iend = i; //отрицательного
  51.             break; //элемента
  52.         }
  53.     if (iend != NULL) {
  54.         return iend;
  55.     }
  56.     else {
  57.         return NULL;
  58.     }
  59. }
  60.  
  61. void moduleNotExceedOne(float* p, int n) {
  62.     for (int i = 0; i < n; i++) //поиск
  63.         if (fabs(p[i]) <= 1) //элементов
  64.         { //модуль которого не превышает 1
  65.             cout << p[i] << ' '; //вывод массива
  66.         }
  67. }
  68.  
  69. int main(int argc, char* argv[])
  70. {
  71.     setlocale(LC_ALL, "Russian");
  72.     int i, n, ibeg = 0, iend = 0; //объявление
  73.     float min = 0, sum = 0; //переменных
  74.     cout << "Введите размерность n=";
  75.     cin >> n; //ввод размерности массива
  76.     cout << "Введите элементы массива:" << endl << endl;
  77.     float* p = new float[n]; // объявление массива
  78.     for (i = 0; i < n; i++)cin >> p[i]; //ввод массива
  79.     cout << "\nМинимальный элемент: " << findMin(p, n) << endl; //вывод элемента
  80.     cout << "Позиция минимального элемента: " << findMinPos(p, n) + 1 << endl; //вывод номера элемента
  81.     ibeg = findFirstSubZero(p, n);
  82.     iend = findSecondSubZero(p, n, ibeg);
  83.     for (i = ibeg + 1; i < iend; i++)sum += p[i]; //суммирование элементов
  84.     cout << "\nСумма элементов расположенных между 1 и 2 отрицательными элементами: " << sum; //вывод суммы
  85.     cout << "\nПреобразованный массив:" << endl << endl;
  86.     moduleNotExceedOne(p, n);
  87.     for (i = 0; i < n; i++)
  88.         if (fabs(p[i]) > 1)
  89.         {
  90.             cout << p[i] << ' '; //вывод всех остальных элементов массива
  91.         }
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement