diff --git a/FIRST.sln b/FIRST.sln new file mode 100644 index 0000000..2dacf33 --- /dev/null +++ b/FIRST.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FIRST", "FIRST\FIRST.vcxproj", "{A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Debug|x64.ActiveCfg = Debug|x64 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Debug|x64.Build.0 = Debug|x64 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Debug|x86.ActiveCfg = Debug|Win32 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Debug|x86.Build.0 = Debug|Win32 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Release|x64.ActiveCfg = Release|x64 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Release|x64.Build.0 = Release|x64 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Release|x86.ActiveCfg = Release|Win32 + {A1DBF34E-EEB5-44E0-B6B4-58F5209ECD3D}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8524669B-A90B-49EA-A84F-0B3C6AB35820} + EndGlobalSection +EndGlobal diff --git a/FIRST/FIRST.cpp b/FIRST/FIRST.cpp new file mode 100644 index 0000000..5e29454 --- /dev/null +++ b/FIRST/FIRST.cpp @@ -0,0 +1,293 @@ +#include +#include + +#define NUM_ELEMENTS 10 + +int arr[NUM_ELEMENTS] = { 7, 3, 6, 1, 9, 5, 2, 4, 8 }; // Исходный массив для примера +int n = 9; + +void printElements() { + printf("< "); + for (int i = 0; i < n; i++) { + printf("%d ", arr[i]); + } + printf(">\n"); +} + +void addElement(int value) { + arr[n++] = value; + +} + +void keyboardInput() { + printf("n = "); + scanf_s("%d", &n); + + printf("input %d vales: ", n); + for (int i = 0; i < n; i++) { + scanf_s("&d", &arr[i]); + } + printElements(); +} + +void oddsX10() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 != 0) { + arr[i] = arr[i] * 10; + } + } +} + +void odds() { + int lastIn = -1; + for (int i = 0; i < n; i++) { + if (arr[i] % 2 != 0) { + lastIn = i; + } + } + + if (lastIn != -1) { + n++; + for (int i = n - 1; i > lastIn + 1; i--) { + arr[i] = arr[i - 1]; + } + arr[lastIn + 1] = 0; + printElements(); + } +} +int findMin() { + int min = arr[0]; + for (int i = 1; i < n; i++) { + if (arr[i] < min) { + min = arr[i]; + } + } + return min; +} + +int tenElement() { + int count = 0; + for (int i = 0; i < n; i++) { + if (arr[i] > 10) { + count++; + } + } + return count; +} +int findLastEven() { + for (int i = n - 1; i >= 0; i--) { + if (arr[i] % 2 == 0) { + return i; + } + } + return -1; +} + +int findIndexMin() { + int minIndex = 0; + for (int i = 1; i < n; i++) { + if (arr[i] < arr[minIndex]) { + minIndex = i; + } + } + return minIndex; +} + +void negateEvenElements() { + for (int i = 0; i < n; i++) { + if (arr[i] % 2 == 0) { + arr[i] = arr[i] * -1; + } + } + printf("Массив после умножения четных элементов на -1: "); + printElements(); +} + +void replaceLessThanFour() { + for (int i = 0; i < n; i++) { + if (arr[i] < 4) { + arr[i] = 4; + } + } + printf("Массив после замены значений < 4 на 4: "); + printElements(); +} + +int findIndexMax() { + int maxIndex = 0; + for (int i = 1; i < n; i++) { + if (arr[i] > arr[maxIndex]) { + maxIndex = i; + } + } + return maxIndex; +} + +void replaceBeforeMaxWithZero() { + int maxIndex = findIndexMax(); + for (int i = 0; i < maxIndex; i++) { + arr[i] = 0; + } + printf("Массив после замены элементов перед максимальным на 0: "); + printElements(); +} + +void deleteElement(int index) { + if (index < 0 || index >= n) { + printf("Неверный индекс!\n"); + return; + } + + for (int i = index; i < n - 1; i++) { + arr[i] = arr[i + 1]; + } + + n--; + printf("Массив после удаления элемента на индексе %d: ", index); + printElements(); +} + +void insertElement(int index, int value) { + if (index < 0 || index >= n || n >= NUM_ELEMENTS) { + printf("Неверный индекс!\n"); + return; + } + + for (int i = n; i > index; i--) { + arr[i] = arr[i - 1]; + } + arr[index] = value; + n++; + printf("Массив после вставки элемента %d на индекс %d: ", value, index); + printElements(); +} + + + + + +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: Удвоение последнего четного элемента\n"); + printf("6: Сколько четных левее минимального\n"); + printf("7: Все четные элементы массива умножить на -1\n"); + printf("8: Массив после замены значений < 4 на 4\n"); + printf("9: Массив после замены элементов перед максимальным на 0\n"); + printf("10: Удаление элемента по идексу\n"); + printf("11: Добавление элемента по индексу\n"); + printf("12: Удаление минимального элемента\n"); + printf("13: 0 перед минимальным элемментом\n"); + printf("14: После последнего нечетного элемента вставить 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 count = tenElement(); + printf("Элементов больше 10: %d\n", count); + } + break; + case 5: { + int index = findLastEven(); + if (index >= 0) { + arr[index] *= 2; + printf("Последний четный элемент удвоен: %d\n", arr[index]); + } + else { + printf("Четных элементов в массиве нет.\n"); + } + } + 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); + } + break; + case 7: + negateEvenElements(); + break; + case 8: + replaceLessThanFour(); + break; + case 9: + replaceBeforeMaxWithZero(); + break; + case 10: + { + int index; + printf("Введите элемент для удаления: "); + 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 minIndex = findIndexMin(); + printf("Минимальный элемент: %d\n", arr[minIndex]); + deleteElement(minIndex); + printElements(); + } + break; + case 13: { + int Indexmin = findIndexMin(); + printf("Индекс минимального элемента = %d\n", Indexmin); + insertElement(Indexmin, 0); + } + break; + case 14: + odds(); + break; + } + + + } while (item != 0); +} diff --git a/FIRST/FIRST.vcxproj b/FIRST/FIRST.vcxproj new file mode 100644 index 0000000..44fcf3c --- /dev/null +++ b/FIRST/FIRST.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {a1dbf34e-eeb5-44e0-b6b4-58f5209ecd3d} + FIRST + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/FIRST/FIRST.vcxproj.filters b/FIRST/FIRST.vcxproj.filters new file mode 100644 index 0000000..5640058 --- /dev/null +++ b/FIRST/FIRST.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file