Bool even(unsigned long element)

 

2) Вставлять новый элемент перед каждым, соответствующим условию, будем с помощью функции

 
 

 

 


void insert_s(unsigned long arr[], int &n, unsigned long newElement)

3) Проверять, является ли число простым, будем с помощью функции

 
 

 


bool simple(unsigned long element)

 

 

4) Удалять все числа массива, следующие за простым числом, будем с помощью функции

 


void del_s(unsigned long* arr, int &n)

 

5) Искать максимальное число среди четных чисел массива будем искать с помощью функции

 
 

 


unsigned long maxEvenNum(unsigned long* arr, int n)

 

6) Для сортировки массива методом линейного выбора будем использовать функцию

 
 

 


unsigned long* sort(unsigned long* arr, int n)

 

Реализация функций

unsigned long* sort(unsigned long* arr, int n) { //сортировка массива методом прямого выбора

int imin;

for (int i = 0; i < n - 1; i++) {

imin = i;

for (int j = i + 1; j < n; j++) {

if (arr[j] <= arr[imin]) {

imin = j;

}

}

swap(arr[i], arr[imin]);

}

return arr;

}

 

unsigned long maxEvenNum(unsigned long* arr, int n) { //максимальное четное число массива

int max, i = n - 1;

bool flag = false;

arr = sort(arr, n);

if (!n) {

return 1;

}

else {

while (!flag) {

if (!(arr[i] % 2)) {

max = arr[i];

flag = true;

}

else {

i--;

}

}

}

if (n < 1) {

return 1;

}

else if (flag) {

return max;

}

else

{

return 1;

}

}

 

bool even(unsigned long element) { //проверка эл-та на четность кол-ва цифр

int calc = 0;

while (element!= 0) {

element /= 10;

calc++;

}

return (calc % 2)? false: true;

}

 

void insert_s(unsigned long arr[], int &n, unsigned long newElement) { //вставка нового элемента после каждого с четными цифрами

int calc = n;

for (int i = 0; i < calc; i++) {

if (even(arr[i])) {

calc++;

for (int j = calc; j > i; j--) {

arr[j] = arr[j - 1];

}

arr[i] = newElement;

i++;

}

}

n = calc;

}

 

bool simple(unsigned long element) { //простое ли число

if (element == 0 || element == 1) {

return false;

}

else if (element == 2) {

return true;

}

else {

int calc = 0;

for (int i = 2; i <= element / 2; i++) {

if (!(element % i)) {

calc++;

}

}

return (calc >= 1)? false: true;

}

}

 

void del_s(unsigned long* arr, int &n) {//удалить элементы, следующие за простым числом

int calc = 0;

for (int i = 0; i < n; i++) {

if (simple(arr[i])) {

for (int j = i + 1; j < n; j++) {

arr[j] = 0;

}

calc++;

break;

}

else {

calc++;

}

}

n = calc;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: