Удаление нулевых элементов из массива, если большая часть массива состоит из них (больше половины элементов)
Заменить нулями все элементы, которые находятся в ячейках
между минимальным и максимальным элементами (не включая их). Изначально все элементы в массиве различные. Если после данного действия большая часть массива будет содержать нули, то удалить все нулевые элементы из массива (c сохранением порядка следования остальных элементов)
int main()
{
setlocale(LC_ALL, "ru");
system("color 70");
srand(time(NULL));
int size = value(); //Функция для ввода размера массива
int* array = new int[size];
std::cout << "Исходный массив: " << std::endl;
for (int i = 0; i < size; i++)
{
array[i] = rand() % 100;
std::cout << array[i] << " ";
}
int x = 0, y = 0;
int max = array[0];
for (int i = 0; i < size; ++i)
{
if (array[i] > max)
{
max = array[i];
x = i;
}
}
int min = array[0];
for (int i = 0; i < size; ++i)
{
if (array[i] < min)
{
min = array[i];
y = i;
}
}
if (x > y)
{
for (x; x > y; x--)
array[x - 1] = 0;
array[y] = min;
}
else
{
for (y; y > x; y--)
array[y - 1] = 0;
array[x] = max;
}
std::cout << "Полученный массив: " << std::endl;
for (int i = 0; i < size; i++)
{
std::cout << array[i] << " ";
}
std::cout << "\n\n\n";
system("pause");
return 0;
}
Основную часть задачи я сделал, пытался удалить нули, если они занимают большинство массива, но так и не вышло. Как это реализовать?