laba4_21/1314/1314/Source.cpp
2024-12-11 14:07:21 +04:00

297 lines
4.9 KiB
C++

#include <stdio.h>
#include <Windows.h>
#define NUM_ELEMENTS 10
int arr[NUM_ELEMENTS];
int n = 0;
void printElements() {
printf("< ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf(">\n");
}
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;
}
}
}
int findMin() {
int min = arr[0];
for (int i = 0; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
void printArray() {
printf("Ñîäåðæèìîå ìàññèâà: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
void print_10() {
int p = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > 10) {
p++;
}
}
printf("%d", p);
}
void doubleLastEven() {
for (int i = n - 1; i >= 0; i--) {
if (arr[i] % 2 == 0) {
arr[i] *= 2;
printf(" %d \n", arr[i]);
return;
}
}
printf("×åòíûå ýëåìåíòû íå íàéäåíû.\n");
}
int countEvensLeftOfMin() {
int min = findMin();
int cnt = 0;
for (int i = 0; i < n; i++) {
if (arr[i] == min) {
break; // Ïðåêðàùàåì ïîäñ÷åò, êîãäà íàõîäèì ìèíèìàëüíûé ýëåìåíò
}
if (arr[i] % 2 == 0) {
cnt++; // Óâåëè÷èâàåì ñ÷åò÷èê, åñëè ýëåìåíò ÷åòíûé
}
}
return cnt;
}
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;
}
void deleteMinElement() {
int min = findMin();
int minIndex = -1;
// Íàõîäèì èíäåêñ ìèíèìàëüíîãî ýëåìåíòà
for (int i = 0; i < n; i++) {
if (arr[i] == min) {
minIndex = i;
break; // Ïðåêðàùàåì ïîèñê ïîñëå íàõîæäåíèÿ ïåðâîãî ìèíèìàëüíîãî ýëåìåíòà
}
}
if (minIndex != -1) {
deleteElement(minIndex);
printf("Ìèíèìàëüíûé ýëåìåíò %d óäàëåí.\n", min);
}
else {
printf("Ìèíèìàëüíûé ýëåìåíò íå íàéäåí.\n");
}
}
int findFirstOdd()
{
int even = -1;
for (int i = 0; i < n; i++)
{
if ((arr[i] + 2) % 2 != 0)
{
if (even == -1)
{
even = i;
}
}
}
return even;
}
void option1() {
for (int i = 1; i < n; ++i) {
if (arr[i] % 2 == 0) {
arr[i - 1] = 9;
}
}
}
int findMinimum() {
int min = arr[0];
int index = 0;
for (int i = 1; i < n; i++)
{
if (arr[i] < min)
{
min = i;
index = i;
}
}
return index;
}
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int item, index, even;
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: õ2 äëÿ ïîñëåäíåãî ÷åòíîãî\n");
printf("6: ñêîëüêî ÷åòíûõ ëåâåå ìèíèìàëüíîãî\n");
printf("8: ");
//ëàáà14
printf("7: Óäàëåíèå ýëåìåíòà \n");
printf("8: Âñòàâêà ýëåìåíòà â ìàññèâ \n");
printf("9: Óäàëèòü ìèíèìàëüíûé\n");
printf("10: Óäàëèòü ïåðâûé íå÷åòíûé\n");
printf("11: çàìåíèòü ïåðåä ÷åòíûì íà 9\n");
printf("12: óìíîæèòü âñå ÷¸òíûå ýëåìåíòû íà -1\n");
printf("13: çàìåíèòü ýëåìåíòû ìåíüøå 4 íà 4\n");
printf("14: Ïåðåä ìèíèìàëüíûì ýëåìåíòîì âñòàâèòü 0\n");
printf("\n");
printf("0: Âûéòè èç ïðîãðàììû\n");
printf("Âûáðàííàÿ îïåðàöèÿ >>>>>> ");
scanf_s("%d", &item);
switch (item) {
case 1:
keyboardInput();
break;
case 2:
oddsX10();
printArray();
break;
case 3:
{
int min = findMin();
printf("min = %d\n", min);
}
break;
case 4:
print_10();
break;
case 5:
doubleLastEven();
break;
case 6:
{
int cnt = countEvensLeftOfMin();
printf("Êîëè÷åñòâî ÷åòíûõ ýëåìåíòîâ ëåâåå ìèíèìàëüíîãî: %d\n", cnt);
break;
}
case 7:
{
printf("Èíäåêñ óäàëÿåìîãî ýëåìåíòà= ");
int index;
scanf_s("%d", &index);
deleteElement(index);
printArray();
break;
}
case 8:
{
printf("Ïåðåä êàêèì ýëåìåíòîì íóæíî âñòàâèòü íîâûé. Èíäåêñ= ");
int index;
scanf_s("%d", &index);
printf("Çíà÷åíèå, êîòîðîå íóæíî âñòàâèòü= ");
int value;
scanf_s("%d", &value);
insertElement(index, value);
printArray();
break;
case 9:
deleteMinElement();
printArray();
break;
}
case 10:
index = findFirstOdd();
even = index;
printf("Ïåðâûé íå÷åòíûé ýëåìåíò %d\n", even);
deleteElement(index);
break;
case 11:
option1();
break;
case 12:
for (int i = 0; i < n; i++)
{
if (arr[i] % 2 == 0)
{
arr[i] *= -1;
}
}
break;
case 13:
for (int i = 0; i < n; i++)
{
if (arr[i] < 4)
{
arr[i] = 4;
}
}
break;
case 14: // ìèíèìàëüíûé ýëåìåíò âñòàâèòü 0
index = findMinimum();
printf("Ìèíèìàëüíûé ýëåìåíò: %d", index);
insertElement(index, 0);
break;
}
} while (item != 0);
}