From e8d91c59d0df553e6d3f57bc25ac68b8b0470536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=80=D0=B2=D0=B0=D1=80=D0=B0=20=D0=9A=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=B5=D0=B2=D0=B0?= Date: Wed, 6 Nov 2024 09:15:40 +0400 Subject: [PATCH] 1 commit --- Source.cpp | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 Source.cpp diff --git a/Source.cpp b/Source.cpp new file mode 100644 index 0000000..3352724 --- /dev/null +++ b/Source.cpp @@ -0,0 +1,317 @@ +#include +#include + +#define NUM_ELEMENTS 10 + +int arr[NUM_ELEMENTS]; +int n = 0; + +void printElements(); +void keyboardInput(); +void oddsX10(); +void oddsX_1(); +void deleteElement(int delIndex); +int findMin(); +void Menshe4(); +int countElements(); +int findLastEven(); +int findLastEven4(); +int findIndexMin(); +int findIndexMax(); +void insertElement(int insIndex, int value); +void insertElement4(int insIndex, int value); + +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: х10 для нечётных правее минимального\n"); + printf("8: перестановка максимального и минимального элемента\n"); + printf("9: все четные элементы массива умножить на -1\n"); + printf("10: Все элементы массива имеющие значения меньше 4 заменить на 4\n"); + printf("11: Bсе четные элементы, стоящие левее минимального, заменить на 0\n"); + printf("12: Удалить заданный элемент\n"); + printf("13: Вставить новый элемент в заданное место\n"); + printf("14: Удалить минимальный элемент\n"); + printf("15: Перед минимальным элементом вставить 0\n"); + printf("16: После последнего кратного четырем элемента вставить 0\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); + } + break; + case 4: + { + int cnt = countElements(); + printf(" %d элементов > 10\n", cnt); + + } + break; + case 5: + { + int index = findLastEven(); + if (index >= 0) { + arr[index] *= 2; + } + } + break; + 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); + } + case 7: + { + int index = findIndexMin(); + printf("Индекс минимального элемента = %d\n", index); + + int cnt = 0; + for (int i = index - 1; i < n; i++) { + if (arr[i] % 2 == 1) { + 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; + } + case 9: + oddsX_1(); + break; + case 10: + Menshe4(); + break; + + case 11: + { + int index = findIndexMin(); + printf("Индекс минимального элемента = %d\n", index); + + for (int i = 0; i < index; i++) { + if (arr[i] % 2 == 0) { + arr[i] = 0; + } + } + }break; + + case 12: + { + printf("Индекс удаляемого элемента = "); + int index; + scanf_s("%d", &index); + + deleteElement(index); + + } + break; + case 13: + { + printf("Перед каким элементом нужно вставить новый? Индекс = "); + int index; + scanf_s("%d", &index); + + printf("Значение, которое нужно вставить = "); + int value; + scanf_s("%d", &value); + + insertElement(index, value); + } + break; + case 14: + { + int min = findIndexMin(); + deleteElement(min); + } + break; + case 15: + { + int indexMin = findIndexMin(); + printf("Индекс минимального элемента = %d\n", indexMin); + + insertElement(indexMin, 0); + } + break; + case 16: + { + int Krat = findLastEven4(); + + insertElement4(Krat, 0); + } + break; + + } + + } while (item != 0); +} + +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; + } + } +} + +void printElements() { + printf("< "); + for (int i = 0; i < n;i++ ) { + printf("%d ", arr[i]); + } + printf(">\n"); +} + + +int findMin() { + int min = arr[0]; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + } + } + return min; +} + +int countElements() { + int cnt = 0; + for (int i = 0; i < n; i++) { + if (arr[i] > 10) { + cnt++; + } + } + return cnt; +} + +int findLastEven() { + for (int i = n - 1; i >= 0; i--) + { + if (arr[i] % 2 == 0) { + return i; + } + } + return -1; +} + +int findIndexMin() { + int min = arr[0]; + int indexMin = 0; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + indexMin = i; + } + } + return indexMin; +} + +int findIndexMax() { + int max = arr[0]; + int indexMax = 0; + for (int i = 1; i < n; i++) { + if (arr[i] > max) { + max = arr[i]; + indexMax = i; + } + } + return indexMax; +} +void oddsX_1() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 0) { + arr[i] = arr[i] * -1; + } + } +} +void Menshe4() { + for (int i = 0; i < n; i++) { + if (arr[i] < 4) { + arr[i] = 4; + } + } +} + +void deleteElement(int delIndex) { + for (int i = delIndex; i < n - 1; i++) { + arr[i] = arr[i + 1]; + } + n--; +} + +void insertElement(int insIndex, int value) { + for (int i = n; i > insIndex; i--) { + arr[i] = arr[i - 1]; + } + n++; + arr[insIndex] = value; +} + +int findLastEven4() { + for (int i = n - 1; i >= 0; i--) { + if (arr[i] % 4 == 0) { + return i; + } + } + return -1; +} +void insertElement4(int insIndex, int value) { + for (int i = n; i > insIndex; i--) { + arr[i] = arr[i-1]; + } + n++; + arr[insIndex+1] = value; +} \ No newline at end of file