#include #include #define NUM_ELEMENTS 10 int arr[NUM_ELEMENTS]; int n = 0; void printElements() { printf("< "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf(">\n"); } void keyboardInput() { printf("n = "); scanf_s("%d", &n); printf("input %d values: ", n); for (int i = 0; i < n; i++) { scanf_s("%d", &arr[i]); } } void oddsX10() { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 1) arr[i] = arr[i] * 10; } } int findMin() { int min = arr[0]; for (int i = 1; i < n; i++) { if (arr[i] < min) min = arr[i]; } return min; } void biggerten() { int cnt = 0; for (int i = 0; i < n; i++) { if (arr[i] > 10) cnt++; } printf("%d элементов больше чем 10", cnt); } int FindLastEven() { for (int i = n - 1; i > 0; i--) { if (arr[i] % 2 == 0) return i; } } int findIndexMin() { int min = arr[0]; int inMin = 0; for (int i = 1; i < n; i++) { if (arr[i] < min) { min = arr[i]; inMin = i; } } return inMin; } int findIndexMax() { int max = arr[0]; int inmx = 0; for (int i = 1; i < n; i++) { if (arr[i] > max) { max = arr[i]; inmx = i; } } return inmx; } void bred() { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { arr[i] = -1 * arr[i]; } } } void bred1() { for (int i = 0; i < n; i++) { if (arr[i] < 4) { arr[i] = 4; } } } void bred2() { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { arr[i] = 0; } } } int FindFirstEven() { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { return i; } } return -1; } void deletElement(int dl) { for (int i = dl; i < n - 1; i++) { arr[i] = arr[i + 1]; } n--; } void insertElement(int ins, int val) { for (int i = n; i > ins; i--) { arr[i] = arr[i - 1]; } n++; arr[ins] = val; } void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int item; do { printf("\n"); printf("------------------------------\n"); printf("Содержимое массива:"); printElements(); printf("Выберите нужную вам операцию:\n"); printf("1: Ввести с клавиатуры массив\n"); printf("2: x10 для всех нечетных элементов\n"); printf("3: Найти минимальный элемент\n"); printf("4: Сколько элементов > 10\n"); printf("5: x2 для последнего четного элемента\n"); printf("6: Сколько четных левее минимального\n"); printf("7: x10 для нечетных правее минимального\n"); printf("8: переставить месами min и max\n"); printf("9: Все четные элементы массива умножить на -1\n"); printf("10: Все элементы массива имеющие значения меньше 4 заменить на 4\n"); printf("11: Все четные элементы обнулить\n"); printf("12: Все элементы стоящие между максимальным и минимальным увеличить в 10 раз\n"); printf("13: Все элементы между первым и последним четным увеличить в 100 раз\n"); printf("14: удалить заданный элемент\n"); printf("15: Вставить новый элемент в заданное место\n"); printf("16: Удалить минимальный элемент\n"); printf("17: Перед минимальным элементом встваить ноль\n"); printf("18: Удалить все четные элементы\n"); printf("19: Продублировать все четные элементы\n"); printf("20: Добавить в начало элемент, равный минимальному\n"); printf("21: Удалить из массива все элементы, значение которых меньше 4\n"); printf("22: удалить первый из четных элементов\n"); printf("23: удалить четные элементы, стоящие после максимального\n"); printf("24: удалить самую длинную цепочку четных элементов\n"); printf("\n"); printf("0: Выйти из программы\n"); printf("Выбранная операция >>>>>> "); scanf_s("%d", &item); switch (item) { case 1: keyboardInput(); break; case 2: oddsX10(); break; case 3: { int min = findMin(); printf("min = %d\n", min); } case 4: biggerten(); break; case 5: { int index = FindLastEven(); if (index >= 0) arr[index] *= 2; } case 6: { int indEx = findIndexMin(); printf("Индекс минимального элемента = %d\n", indEx); int cnt = 0; for (int i = 0; i < indEx; i++) { if (arr[i] % 2 == 0) cnt++; } printf("Левее минимального %d четных элементов\n", cnt); } break; case 7: { int index = findIndexMin(); printf("Индекс минимального элемента = %d\n", index); for (int i = n; i > index; i--) { if (arr[i] % 2 != 0) arr[i] *= 10; } } break; case 8: { int indexmin = findIndexMin(); printf("Индекс минимального элемента = %d\n", indexmin); int indexmax = findIndexMax(); printf("Индекс максимального элемента = %d\n", indexmax); int tmp = arr[indexmin]; arr[indexmin] = arr[indexmax]; arr[indexmax] = tmp; } break; case 9: bred(); break; case 10: bred1(); break; case 11: bred2(); break; case 12: { int indexmin = findIndexMin(); printf("Индекс минимального элемента = %d\n", indexmin); int indexmax = findIndexMax(); printf("Индекс максимального элемента = %d\n", indexmax); for (int i = indexmax + 1; i < indexmin; i++) { arr[i] *= 10; } } break; case 13: { int indexf = FindFirstEven(); printf("Индекс минимального элемента = %d\n", indexf); int indexl = FindLastEven(); printf("Индекс максимального элемента = %d\n", indexl); for (int i = indexf + 1; i < indexl; i++) { arr[i] *= 100; } } break; case 14: { int index; printf("Индекс удаляемого элемента = "); scanf_s("%d", &index); deletElement(index); } break; case 15: { int index; int value; printf("Перед каким элементом нужно вставить новый? Индекс = "); scanf_s("%d", &index); printf("Значение которое нужно вставить = "); scanf_s("%d", &value); insertElement(index, value); } break; case 16: { int min = findIndexMin(); printf("min=%d\n", arr[min]); deletElement(min); } break; case 17: { int inmn = findIndexMin(); printf("Индекс минимального элемента = %d\n", inmn); insertElement(inmn, 0); } break; case 18: { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { deletElement(i); i--; } } } break; case 19: { for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { insertElement(i, arr[i]); i++; } } } break; case 20: { int inmn = findIndexMin(); printf("Индекс минимального элемента = %d\n", inmn); insertElement(0, arr[inmn]); } break; case 21: { for (int i = 0; i < n; i++) { if (arr[i] < 4) { deletElement(i); i--; } } } break; case 22: { int indexf = FindFirstEven(); printf("Индекс минимального элемента = %d\n", indexf); deletElement(indexf); } break; case 23: { int indexmax = findIndexMax(); printf("Индекс максимального элемента = %d\n", indexmax); for (int i = indexmax + 1; i < n; i++) { if (arr[i] % 2 == 0) { deletElement(i); i--; } } } break; case 24: { int teklen = 0, teknach = -1; int maxlen = 0, maxnach = -1; for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) { if (teklen == 0) { teknach = i; } teklen++; } else { if (teklen > maxlen) { maxlen = teklen; maxnach = teknach; } teklen = 0; } } if (teklen > maxlen) { maxlen = teklen; maxnach = teknach; } if (maxnach != -1) { for (int i = 0; i < maxlen; i++) { deletElement(maxnach); } } } break; } } while (item != 0); }