diff --git a/.gitignore b/.gitignore index 8c2b884..f81e815 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ # Built Visual Studio Code Extensions *.vsix +.vscode/ diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..7e91b4a --- /dev/null +++ b/main.cpp @@ -0,0 +1,187 @@ +#include +#include + +#define MAX_SIZE 10 + +int arr[MAX_SIZE]; +int n = 0; + +void keyboardInput() { + printf("n = "); + if (scanf_s("%d", &n) != 1 || n <= 0 || n > MAX_SIZE) { + printf("Невереное значение %d.\n", MAX_SIZE); + n = 0; + return; + } + + printf("Введенное %d значение: ", n); + for (int i = 0; i < n; i++) { + if (scanf_s("%d", &arr[i]) != 1) { + printf("Невереное значение\n"); + n = 0; + return; + } + } +} + +void oddsX10() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 1) { + arr[i] *= 10; + } + } +} + +int findMin() { + if (n <= 0) return -1; + int min = arr[0]; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + } + } + return min; +} + +int findMax() { + if (n <= 0) return -1; + int max = arr[0]; + for (int i = 1; i < n; i++) { + if (arr[i] > max) { + max = arr[i]; + } + } + return max; +} + +int findLastEven() { + for (int i = n - 1; i >= 0; i--) { + if (arr[i] % 2 == 0) { + return i; + } + } + return -1; +} + +int findIndexMin() { + if (n <= 0) return -1; + int min = arr[0]; + int minIndex = 0; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + minIndex = i; + } + } + return minIndex; +} + +int evensMultiplyByMinusOne() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 0) { + arr[i] = arr[i] * -1; + } + } +} + +void replaceLessThanFourWithFour() { + for (int i = 0; i < n; i++) { + if (arr[i] < 4) { + arr[i] = 4; + } + } +} + +void printElements() { + if (n == 0) { + printf("Массив пуст.\n"); + return; + } + printf("["); + for (int i = 0; i < n; i++) { + printf("%d", arr[i]); + if (i < n - 1) { + printf(", "); + } + } + printf("]\n"); +} + + + +int 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: Найти максимальный элемент\n"); + printf("5: Удвоить последний четный элемент\n"); + printf("6: Найти количество четных элементов левее минимального\n"); + printf("7: Все четные элементы массива умножить на -1\n"); + printf("8: Все элементы массива имеющие значения меньше 4 заменить на 4\n"); + printf("0: Выйти из программы\n"); + printf("Выбранная операция >>>>>> "); + + if (scanf_s("%d", &item) != 1) { + printf("Неверное значение.\n"); + while (getchar() != '\n'); + continue; + } + + switch (item) { + case 1: keyboardInput(); break; + case 2: oddsX10(); break; + case 3: { + int min = findMin(); + if (min != -1) printf("min = %d\n", min); + else printf("Массив пуст\n"); + } break; + case 4: { + int max = findMax(); + if (max != -1) printf("max = %d\n", max); + else printf("Массив пуст\n"); + } break; + case 5: { + int index = findLastEven(); + if (index >= 0) printf("Последний четный элемент умноженный на 2 = %d\n", arr[index] *= 2); + else printf("Не число.\n"); + } break; + case 6: { + int index = findIndexMin(); + if (index != -1) { + int cnt = 0; + for (int i = 0; i < index; i++) { + if (arr[i] % 2 == 0) cnt++; + } + printf("Левее минимального %d четных элементов\n", cnt); + } + else { + printf("Массив пуст\n"); + } + } break; + case 7: { + evensMultiplyByMinusOne(); + } break; + case 8: { + replaceLessThanFourWithFour(); + } break; + + case 0: break; + default: printf("Неверный номер операции!\n"); + } + + } while (item != 0); + + return 0; +} + + +