Загрузка данных
#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;
}