Другие языки программирования и технологии

решить на языке С

18 задание как можно скорее
#include < iostream>
#include < ctime >
using namespace std;
void print_array(int *arr, int size)
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void fill_array(int *arr, int size)
{
for (int i = 0; i < size; i++)
{
arr[i] = rand() % (10);
}
}
int main()
{
//srand(time(0));
int size;
cin >> size;
int *arr = new int [size] {};
fill_array(arr, size);
print_array(arr, size);

int *mas = new int[size] {};
for (int i = 0; i < size; i++)
{
mas[i] = arr[i];
cout << mas[i] << " ";
}
cout << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < (size - 1); j++)
{
if (mas[j] > mas[j + 1])
{
int tmp = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = tmp;
}
}
}
print_array(mas, size);
bool k = true;
for (int i = 0; i < size; i++)
{
if (mas[i] != arr[i])
{
k = false;
}
}
cout << k << endl;

delete[]mas;

if (k == 0)
{
int new_size = size + (size / 2);
int *mas1 = new int[new_size] {};
int h = 1;
int min = arr[0];
for (int i = 0; i < size; i++)
{
if (min > arr[i] && arr[i] % 2 == 0)
{
min = arr[i];
}
}
cout << "min-> " << min << endl;
for (int i = 0, j = 0; i < size, j < new_size; i++, j++)
{
if (h % 3 != 0)
{
mas1[j] = arr[i];
}
else
{
mas1[j] = min;
i--;
}
h++;
}
delete[]arr;
arr = mas1;
size = new_size;
print_array(arr, size);
}

system("pause");
}
ДШ
Дмитрий Шапошников
221
Лучший ответ
А на что влияет случай если массив только из простых чисел? Минимальное мы найти можем, каждый второй тоже (1 2 1 2 ...)
Задание сложное хотя бы от того, что требуют на простоту число проверить, а значит вам алгоритм давали и препод именно это хочет от вас, то бишь алгоритм надо написать именно так, как вам он дал, а то подумает, что вы списали откуда-то.

Делать не буду, там очень долго.
Сергей Чижов
Сергей Чижов
86 719