Загрузка данных


#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL)); // запуск датчика случайных чисел

    int n;
    cout << "Введите размер массива N: ";
    cin >> n;

    // выделение динамической памяти под массив K
    int *K = new int[n];

    // заполнение массива случайными числами в диапазоне [-10, 10]
    for (int i = 0; i < n; i++)
    {
        K[i] = rand() % 21 - 10;
    }

    // вывод массива на экран
    cout << "Массив K:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << K[i] << " ";
    }
    cout << endl;

    // освобождение динамической памяти
    delete[] K;

    system("pause");
    return 0;
}



#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>

using namespace std;

/*
    предусловия: K - исходный массив размера n; X - динамический массив; m - размер массива X
    постусловия: функция отбирает ненулевые элементы из массива K в массив X
*/
void createArrayX(int *K, int n, int *&X, int &m)
{
    // подсчет количества ненулевых элементов
    m = 0;
    for (int i = 0; i < n; i++)
    {
        if (K[i] != 0)
            m++;
    }

    // выделение памяти под массив X
    X = new int[m];

    // копирование ненулевых элементов
    int index = 0;
    for (int i = 0; i < n; i++)
    {
        if (K[i] != 0)
        {
            X[index] = K[i];
            index++;
        }
    }
}

int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));

    int n;
    cout << "Введите размер массива N: ";
    cin >> n;

    int *K = new int[n];

    for (int i = 0; i < n; i++)
    {
        K[i] = rand() % 21 - 10;
    }

    cout << "Массив K:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << K[i] << " ";
    }
    cout << endl;

    int *X = NULL;
    int sizeX = 0;

    // вызов функции создания массива X
    createArrayX(K, n, X, sizeX);

    cout << "\nМассив X (ненулевые элементы):" << endl;
    for (int i = 0; i < sizeX; i++)
    {
        cout << X[i] << " ";
    }
    cout << endl;

    // освобождение памяти обоих массивов
    delete[] K;
    delete[] X;

    system("pause");
    return 0;
}



#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <clocale>

using namespace std;

/*
    предусловия: K - исходный массив размера n; X - динамический массив; m - размер массива X
    постусловия: функция отбирает ненулевые элементы из массива K в массив X
*/
void createArrayX(int *K, int n, int *&X, int &m)
{
    m = 0;
    for (int i = 0; i < n; i++)
    {
        if (K[i] != 0)
            m++;
    }

    X = new int[m];

    int index = 0;
    for (int i = 0; i < n; i++)
    {
        if (K[i] != 0)
        {
            X[index] = K[i];
            index++;
        }
    }
}

/*
    предусловия: X - массив размера m
    постусловия: функция возвращает количество положительных элементов после первого минимального элемента
*/
int countPositiveAfterMin(int *X, int m)
{
    if (m <= 1)
        return 0;

    // поиск индекса минимального элемента
    int minIndex = 0;
    for (int i = 1; i < m; i++)
    {
        if (X[i] < X[minIndex])
        {
            minIndex = i;
        }
    }

    // подсчет положительных элементов после минимального
    int count = 0;
    for (int i = minIndex + 1; i < m; i++)
    {
        if (X[i] > 0)
            count++;
    }

    return count;
}

int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));

    int n;
    cout << "Введите размер массива N: ";
    cin >> n;

    int *K = new int[n];

    for (int i = 0; i < n; i++)
    {
        K[i] = rand() % 21 - 10;
    }

    cout << "Массив K:" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << K[i] << " ";
    }
    cout << endl;

    int *X = NULL;
    int sizeX = 0;

    createArrayX(K, n, X, sizeX);

    cout << "\nМассив X (ненулевые элементы):" << endl;
    for (int i = 0; i < sizeX; i++)
    {
        cout << X[i] << " ";
    }
    cout << endl;

    // вычисление количества положительных после минимального
    int result = countPositiveAfterMin(X, sizeX);
    cout << "\nКоличество положительных после минимального: " << result << endl;

    // освобождение памяти
    delete[] K;
    delete[] X;

    system("pause");
    return 0;
}