Удалить из последовательности все нечетные элементы, затем отсортировать ее по возрастанию - C (СИ)
Формулировка задачи:
Дана последовательность из n целых элементов. Удалить из нее все нечетные элементы, затем отсортировать ее по возрастанию. Вывести на экран исходную последовательность до удаления, после удаления и после сортировки. Подскажите пожалуйста, что-то вообще ничего не понимаю
Решение задачи: «Удалить из последовательности все нечетные элементы, затем отсортировать ее по возрастанию»
textual
Листинг программы
#include <iostream>
#include <ctime>
using namespace std;
void main()
{
setlocale(LC_ALL,"Russian");
srand(time(0));
int n=0;
printf("Введите n: ");
scanf("%d", &n);
int *Mas=new int [n];
int k=0;
printf("Массив без изменений: ");
for(int i=0;i<10;i++)
{
Mas[i]=(rand() % 100);
if(Mas[i]%2==0)
{
k++;
}
printf("%d ", Mas[i]);
}
printf("Массив без нечетных чисел: ");
int *Mas1=new int [k];
int i=0;
int j=0;
while(i!=10)
{
if(Mas[i]%2==0)
{
Mas1[j]=Mas[i];
printf("%d ", Mas1[j]);
j++;
}
i++;
}
int temp=0;
for (int j = 0; j < k; j++)
{
for(int i=0;i<k-1;i++)
{
if(Mas1[i]>Mas1[i+1])
{
temp=Mas1[i];
Mas1[i]=Mas1[i+1];
Mas1[i+1]=temp;
}
}
}
printf("Сортировка по возрастанию: ");
for(int i=0;i<k;i++)
{
printf("%d ", Mas1[i]);
}
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с языком C++
- Устанавливается русскоязычная локаль с помощью функции setlocale
- Инициализируется генератор случайных чисел с помощью функции srand и времени с помощью функции time
- Объявляется переменная n типа int для хранения количества элементов в массиве
- С помощью функции printf выводится сообщение с просьбой ввести значение n
- С помощью функции scanf происходит считывание значения n и его сохранение в переменной n
- Динамически выделяется память под массив Mas типа int с размером n
- Инициализируются первые 10 элементов массива Mas с помощью генератора случайных чисел, при этом нечетные числа не добавляются в массив
- Выводится сообщение
Массив без изменений:и все элементы массива Mas - Создается новый массив Mas1 типа int размером k, где k - количество четных чисел в массиве Mas
- В цикле while заполняется массив Mas1 только четными числами из массива Mas
- Выводится сообщение
Массив без нечетных чисел:и все элементы массива Mas1 - В цикле for производится сортировка массива Mas1 по возрастанию с помощью алгоритма сортировки пузырьком
- Выводится сообщение
Сортировка по возрастанию:и все элементы массива Mas1