Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- namespace ArrayManipulator
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] array = Console.ReadLine().
- Split()
- .Select(int.Parse)
- .ToArray();
- string command = Console.ReadLine();
- while (command != "end")
- {
- string[] commandParts = command.Split();
- if (commandParts[0] == "exchange")
- {
- GetExchangedArray(array, commandParts);
- }
- else if (commandParts[0] == "max")
- {
- switch (commandParts[1])
- {
- case "even":
- PrintMaxEven(array);
- break;
- case "odd":
- PrintMaxOdd(array);
- break;
- }
- }
- else if (commandParts[0] == "min")
- {
- switch (commandParts[1])
- {
- case "even":
- PrintMinEven(array);
- break;
- case "odd":
- PrintMinOdd(array);
- break;
- }
- }
- else if (commandParts[0] == "first")
- {
- switch (commandParts[2])
- {
- case "even":
- PrintFirstEvenElements(array, commandParts);
- break;
- case "odd":
- PrintFirstOddElements(array, commandParts);
- break;
- }
- }
- else if (commandParts[0] == "last")
- {
- switch (commandParts[2])
- {
- case "even":
- PrintLastEvenElements(array, commandParts);
- break;
- case "odd":
- PrintLastOddElements(array, commandParts);
- break;
- }
- }
- command = Console.ReadLine();
- }
- Console.WriteLine($"[{String.Join(", ", array)}]");
- }
- static void GetExchangedArray(int[] arr, string[] array)
- {
- int IndexChange = int.Parse(array[1]);
- if (IndexChange >= arr.Length || IndexChange < 0)
- {
- Console.WriteLine("Invalid index");
- return;
- }
- int rotations = IndexChange + 1;
- for (int i = 0; i < rotations; i++)
- {
- int first = arr[0];
- for (int j = 0; j < arr.Length - 1; j++)
- {
- arr[j] = arr[j + 1];
- }
- arr[arr.Length - 1] = first;
- }
- }
- static void PrintMaxEven(int[] arr)
- {
- int maxElement = int.MinValue;
- int maxIndex = arr.Length;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 == 0 && arr[i] >= maxElement)
- {
- maxElement = arr[i];
- maxIndex = i;
- }
- }
- if (maxIndex == arr.Length)
- {
- Console.WriteLine("No matches");
- }
- else
- {
- Console.WriteLine(maxIndex);
- }
- }
- static void PrintMaxOdd(int[] arr)
- {
- int maxElement = int.MinValue;
- int maxIndex = arr.Length;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 != 0 && arr[i] >= maxElement)
- {
- maxElement = arr[i];
- maxIndex = i;
- }
- }
- if (maxIndex == arr.Length)
- {
- Console.WriteLine("No matches");
- }
- else
- {
- Console.WriteLine(maxIndex);
- }
- }
- static void PrintMinEven(int[] arr)
- {
- int minElement = int.MaxValue;
- int minIndex = -1;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 == 0 && arr[i] <= minElement)
- {
- minElement = arr[i];
- minIndex = i;
- }
- }
- if (minIndex == -1)
- {
- Console.WriteLine("No matches");
- }
- else
- {
- Console.WriteLine(minIndex);
- }
- }
- static void PrintMinOdd(int[] arr)
- {
- int minElement = int.MaxValue;
- int minIndex = -1;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 != 0 && arr[i] <= minElement)
- {
- minElement = arr[i];
- minIndex = i;
- }
- }
- if (minIndex == -1)
- {
- Console.WriteLine("No matches");
- }
- else
- {
- Console.WriteLine(minIndex);
- }
- }
- static void PrintFirstEvenElements(int[] arr, string[] array)
- {
- int wantedCountOfEvenElements = int.Parse(array[1]);
- if (wantedCountOfEvenElements > arr.Length)
- {
- Console.WriteLine("Invalid count");
- return;
- }
- string firstEvenElements = "";
- int count = 0;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 == 0 && count < wantedCountOfEvenElements)
- {
- firstEvenElements += arr[i].ToString();
- count++;
- }
- }
- char[] firstEvensEl = firstEvenElements.ToArray();
- Console.WriteLine($"[{String.Join(", ", firstEvensEl)}]");
- }
- static void PrintFirstOddElements(int[] arr, string[] array)
- {
- int wantedCountOfOddElements = int.Parse(array[1]);
- if (wantedCountOfOddElements > arr.Length)
- {
- Console.WriteLine("Invalid count");
- return;
- }
- string firstOddElements = "";
- int count = 0;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 != 0 && count < wantedCountOfOddElements)
- {
- firstOddElements += arr[i].ToString();
- count++;
- }
- }
- char[] firstOddsEl = firstOddElements.ToArray();
- Console.WriteLine($"[{String.Join(", ", firstOddsEl)}]");
- }
- static void PrintLastEvenElements(int[] arr, string[] array)
- {
- int wantedCountOfEvenElements = int.Parse(array[1]);
- if (wantedCountOfEvenElements > arr.Length)
- {
- Console.WriteLine("Invalid count");
- return;
- }
- string lastEvenElements = "";
- int count = 0;
- for (int i = arr.Length - 1; i >= 0; i--)
- {
- if (arr[i] % 2 == 0 && count < wantedCountOfEvenElements)
- {
- lastEvenElements += arr[i].ToString();
- count++;
- }
- }
- char[] lastEvensElem = lastEvenElements.ToArray();
- char[] reversedArr = new char[lastEvensElem.Length];
- for (int i = 0; i < lastEvensElem.Length; i++)
- {
- reversedArr[i] = lastEvensElem[lastEvensElem.Length - i - 1];
- }
- Console.WriteLine($"[{string.Join(", ", lastEvensElem)}]");
- }
- static void PrintLastOddElements(int[] arr, string[] array)
- {
- int wantedCountOfOddElements = int.Parse(array[1]);
- if (wantedCountOfOddElements > arr.Length)
- {
- Console.WriteLine("Invalid count");
- return;
- }
- string lastOddElements = "";
- int count = 0;
- for (int i = arr.Length - 1; i >= 0; i--)
- {
- if (arr[i] % 2 != 0 && count < wantedCountOfOddElements)
- {
- lastOddElements += arr[i].ToString();
- count++;
- }
- }
- char[] lastOddsElem = lastOddElements.ToArray();
- char[] reversedArr = new char[lastOddsElem.Length];
- for (int i = 0; i < lastOddsElem.Length; i++)
- {
- reversedArr[i] = lastOddsElem[lastOddsElem.Length - i - 1];
- }
- Console.WriteLine($"[{string.Join(", ", lastOddsElem)}]");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment