From 7f8579f94a28b20064bf3d64ce26ef2a26736aeb Mon Sep 17 00:00:00 2001 From: augeliua Date: Wed, 27 Nov 2024 17:46:12 +0400 Subject: [PATCH] commit1 --- one.c | 241 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 one.c diff --git a/one.c b/one.c new file mode 100644 index 0000000..b03d39d --- /dev/null +++ b/one.c @@ -0,0 +1,241 @@ +#include +#include + +#define NUM_ELEMENTS 10 + +int arr[NUM_ELEMENTS]; +int n = 0; + +void printElements() { + for (int i = 0; i < n; i++) { + printf("%d ", arr[i]); + } +} + +void keyboardInput() { + printf("n = "); + scanf_s("%d", &n); + + printf("Введите %d переменных: ", 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; +} + +int FindIndexMin() { + int min = arr[0]; + int index = 0; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + index = i; + } + } + return index; +} + +int MoreThan10() { + int cnt = 0; + for (int i = 0; i < n; i++) { + + if (arr[i] > 10) { + cnt += 1; + } + } + return cnt; +} + +void TwiceLastEven() { + int index = 0; + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 0) { + index = i; + } + } + arr[index] = 2 * arr[index]; +} + +void HowManyLeft() { + 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); +} + +void MinusEven() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 0) { + arr[i] = -1 * arr[i]; + } + } +} + +void OnlyMore4() { + for (int i = 0; i < n; i++) { + if (arr[i] < 4) { + arr[i] = 4; + } + } +} + +void BetweenEven() { + for (int i = 1; i < (n - 1); i++) { + if ((arr[i - 1] % 2 == 0) && (arr[i + 1] % 2 == 0)) { + arr[i] = 1; + } + } +} + + +//Лаба 14 + +void DeleteElement(int index) { + for (int i = index; i < (n - 1); i++) { + arr[i] = arr[i + 1]; + } + n--; +} + +void InsertElement(int index, int value) { + for (int i = n; i > index; i--) { + arr[i] = arr[i - 1]; + } + n++; + arr[index] = value; +} + +void main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int item; + do { + printf("\n"); + printf("------------------------------\n"); + printf("Содержимое массива: "); + printElements(); + printf("\n"); + printf("Выберите нужную вам операцию:\n"); + printf("1: Ввести с клавиатуры массив\n"); + printf("2: x10 для всех нечетных элементов\n"); + printf("3: Найти минимальный элемент\n"); + printf("4: Сколько элементов больше 10 \n"); + printf("5: Умножить на 2 последний четный элемент\n"); + printf("6: Сколько четных элементов левее минимального \n"); + printf("7: Все четные умножить на -1 \n"); + printf("8: Все элементы, ищеющие значения меньше 4, заменить на 4 \n"); + printf("9: Заменить элемент, стоящий между четными, на 1 \n"); + printf("10: Удалить нужный элемент \n"); + printf("11: Новый элемент в нужное место \n"); + printf("12: Удалить минимальный элемент \n"); + printf("13: Перед минимальным элементом вставить 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 = MoreThan10(); + printf("%d больше 10 \n", cnt); + break; + } + + case 5: + TwiceLastEven(); + break; + + case 6: + HowManyLeft(); + break; + + case 7: + MinusEven(); + break; + + case 8: + OnlyMore4(); + break; + case 9: + BetweenEven(); + break; + + //Лаба 14 + case 10: + { + printf("Индекс удаляемого элемента: "); + int index; + scanf_s("%d", &index); + DeleteElement(index); + break; + } + case 11: + { + printf("Перед каким элементом нужно вставить новый? Введите его индекс: "); + int index; + scanf_s("%d", &index); + + printf("Значение, которое нужно вставить = "); + int value; + scanf_s("%d", &value); + + InsertElement(index, value); + break; + } + case 12: + { + int min = FindIndexMin(); + printf("min = %d", arr[min]); + DeleteElement(min); + break; + } + case 13: + { + int min = FindIndexMin(); + InsertElement(min, 0); + break; + } + } + + } while (item != 0); +} \ No newline at end of file