main and gitignore file

This commit is contained in:
RavilGismatullin 2024-12-11 13:39:27 +04:00
parent cb9b51601f
commit b1f2c91341
2 changed files with 188 additions and 0 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@
# Built Visual Studio Code Extensions # Built Visual Studio Code Extensions
*.vsix *.vsix
.vscode/

187
main.cpp Normal file
View File

@ -0,0 +1,187 @@
#include <stdio.h>
#include <Windows.h>
#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;
}