Advertisement
countDecko

Array Manipulator

Feb 14th, 2019
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.00 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Array_Manipulator
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int[] inputArray = Console.ReadLine()
  11.                         .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  12.                         .Select(int.Parse)
  13.                         .ToArray();
  14.             string input = string.Empty;
  15.             while (true)
  16.             {
  17.                 input = Console.ReadLine();
  18.                 string[] inputStringArray = input.Split(" ").ToArray();
  19.                 switch (inputStringArray[0])
  20.                 {
  21.                     case "exchange":
  22.                         if (int.Parse(inputStringArray[1]) >= inputArray.Length)
  23.                             Console.WriteLine("Invalid index");
  24.                         else
  25.                             inputArray = CommandExchange(inputArray, int.Parse(inputStringArray[1]));
  26.                         break;
  27.                     case "max":
  28.                         if (inputStringArray[1] == "even") CommandMaxEven(inputArray);
  29.                         else CommandMaxOdd(inputArray);
  30.                         break;
  31.                     case "min":
  32.                         if (inputStringArray[1] == "even") CommandMinEven(inputArray);
  33.                         else CommandMinOdd(inputArray);
  34.                         break;
  35.                     case "first":
  36.                         if (int.Parse(inputStringArray[1]) >= inputArray.Length)
  37.                             Console.WriteLine("Invalid count");
  38.                         else
  39.                         {
  40.                             if (inputStringArray[2] == "even") CommandFirstEven(inputArray, int.Parse(inputStringArray[1]));
  41.                             else CommandFirstOdd(inputArray, int.Parse(inputStringArray[1]));
  42.                         }
  43.                         break;
  44.                     case "last":
  45.                         if (inputStringArray[2] == "even") CommandLastEven(inputArray, int.Parse(inputStringArray[1]));
  46.                         else CommandLastOdd(inputArray, int.Parse(inputStringArray[1]));
  47.                         break;
  48.                     case "end":
  49.                         Console.Write("[");
  50.                         for (int i = 0; i < inputArray.Length - 1; i++)
  51.                         {
  52.                             Console.Write(inputArray[i] + ", ");
  53.                         }
  54.                         Console.Write(inputArray[inputArray.Length - 1] + "]");
  55.                         Console.WriteLine();
  56.                         return;
  57.                     default:
  58.                         break;
  59.                 }
  60.             }
  61.         }
  62.  
  63.         private static void CommandLastOdd(int[] inputArray, int numberOfOdd)
  64.         {
  65.             int[] arayOfLastOdd = new int[numberOfOdd];
  66.             int oddNumberCounter = 0;
  67.             Console.Write("[");
  68.             for (int i = inputArray.Length - 1; i > -1; i--)
  69.             {
  70.                 if (inputArray[i] % 2 == 1)
  71.                 {
  72.                     arayOfLastOdd[oddNumberCounter] = inputArray[i];
  73.                     oddNumberCounter++;
  74.                 }
  75.                 if (oddNumberCounter == numberOfOdd)
  76.                     break;
  77.             }
  78.             arayOfLastOdd.Reverse();
  79.             for (int i = 0; i < oddNumberCounter; i++)
  80.             {
  81.                 if (i < oddNumberCounter - 1)
  82.                     Console.Write(arayOfLastOdd[i] + ", ");
  83.                 else
  84.                     Console.Write(arayOfLastOdd[i]);
  85.             }
  86.             Console.Write("]\n");
  87.         }
  88.  
  89.         private static void CommandLastEven(int[] inputArray, int numberOfEven)
  90.         {
  91.             int[] arrayOfLastEven = new int[numberOfEven];
  92.             int evenNumberCounter = 0;
  93.             Console.Write("[");
  94.             for (int i = inputArray.Length - 1; i > -1; i--)
  95.             {
  96.                 if (inputArray[i] % 2 == 0)
  97.                 {
  98.                     arrayOfLastEven[evenNumberCounter] = inputArray[i];
  99.                     evenNumberCounter++;
  100.                 }
  101.                 if (evenNumberCounter == numberOfEven)
  102.                     break;
  103.             }
  104.             arrayOfLastEven.Reverse();
  105.             for (int i = 0; i < evenNumberCounter; i++)
  106.             {
  107.                 if (i < evenNumberCounter - 1)
  108.                     Console.Write(arrayOfLastEven[i] + ", ");
  109.                 else
  110.                     Console.Write(arrayOfLastEven[i]);
  111.             }
  112.             Console.Write("]\n");
  113.         }
  114.  
  115.         private static void CommandFirstOdd(int[] inputArray, int numberOfOdd)
  116.         {
  117.             int[] arrayOfFirstOdd = new int[numberOfOdd];
  118.             int oddNumberCounter = 0;
  119.             Console.Write("[");
  120.             for (int i = 0; i < inputArray.Length; i++)
  121.             {
  122.                 if (inputArray[i] % 2 == 1)
  123.                 {
  124.                     arrayOfFirstOdd[oddNumberCounter] = inputArray[i];
  125.                     oddNumberCounter++;
  126.                 }
  127.                 if (oddNumberCounter == numberOfOdd)
  128.                     break;
  129.             }
  130.             for (int i = 0; i < oddNumberCounter; i++)
  131.             {
  132.                 if (i < oddNumberCounter - 1)
  133.                     Console.Write(arrayOfFirstOdd[i] + ", ");
  134.                 else
  135.                     Console.Write(arrayOfFirstOdd[i]);
  136.             }
  137.             Console.Write("]\n");
  138.         }
  139.  
  140.         private static void CommandFirstEven(int[] inputArray, int numberOfEven)
  141.         {
  142.             int[] arrayOfFirstEven = new int[numberOfEven];
  143.             int evenNumberCounter = 0;
  144.             Console.Write("[");
  145.             for (int i = 0; i < inputArray.Length; i++)
  146.             {
  147.                 if (inputArray[i] % 2 == 0)
  148.                 {
  149.                     arrayOfFirstEven[evenNumberCounter] = inputArray[i];
  150.                     evenNumberCounter++;
  151.                 }
  152.                 if (evenNumberCounter == numberOfEven)
  153.                     break;
  154.             }
  155.             for (int i = 0; i < evenNumberCounter; i++)
  156.             {
  157.                 if (i < evenNumberCounter - 1)
  158.                     Console.Write(arrayOfFirstEven[i] + ", ");
  159.                 else
  160.                     Console.Write(arrayOfFirstEven[i]);
  161.             }
  162.             Console.Write("]\n");
  163.         }
  164.  
  165.         private static void CommandMinOdd(int[] inputArray)
  166.         {
  167.             int minOdd = int.MaxValue;
  168.             int minOddIndex = -1;
  169.             for (int i = 0; i < inputArray.Length; i++)
  170.             {
  171.                 if (inputArray[i] % 2 == 1 && inputArray[i] < minOdd)
  172.                 {
  173.                     minOdd = inputArray[i];
  174.                     minOddIndex = i;
  175.                 }
  176.             }
  177.             if (minOdd != int.MaxValue) Console.WriteLine(minOddIndex);
  178.             else Console.WriteLine("No matches");
  179.         }
  180.  
  181.         private static void CommandMinEven(int[] inputArray)
  182.         {
  183.             int minEven = int.MaxValue;
  184.             int minEvenIndex = 0;
  185.             for (int i = 0; i < inputArray.Length; i++)
  186.             {
  187.                 if (inputArray[i] % 2 == 0 && inputArray[i] < minEven)
  188.                 {
  189.                     minEven = inputArray[i];
  190.                     minEvenIndex = i;
  191.                 }
  192.             }
  193.             if (minEven != int.MaxValue) Console.WriteLine(minEvenIndex);
  194.             else Console.WriteLine("No matches");
  195.         }
  196.  
  197.         private static void CommandMaxOdd(int[] inputArray)
  198.         {
  199.             int maxOdd = int.MinValue;
  200.             int maxOddIndex = -1;
  201.             for (int i = 0; i < inputArray.Length; i++)
  202.             {
  203.                 if (inputArray[i] % 2 == 1 && inputArray[i] > maxOdd)
  204.                 {
  205.                     maxOdd = inputArray[i];
  206.                     maxOddIndex = i;
  207.                 }
  208.             }
  209.             if (maxOdd != int.MinValue) Console.WriteLine(maxOddIndex);
  210.             else Console.WriteLine("No matches");
  211.         }
  212.  
  213.         private static void CommandMaxEven(int[] inputArray)
  214.         {
  215.             int maxEven = int.MinValue;
  216.             int maxEvenIndex = -1;
  217.             for (int i = 0; i < inputArray.Length; i++)
  218.             {
  219.                 if (inputArray[i] % 2 == 0 && inputArray[i] > maxEven)
  220.                 {
  221.                     maxEven = inputArray[i];
  222.                     maxEvenIndex = i;
  223.                 }
  224.             }
  225.             if (maxEven != int.MinValue) Console.WriteLine(maxEvenIndex);
  226.             else Console.WriteLine("No matches");
  227.         }
  228.  
  229.         static int[] CommandExchange(int[] inputArray, int numberOfRotations)
  230.         {
  231.             for (int i = 0; i <= numberOfRotations; i++)
  232.             {
  233.                 for (int j = 0; j < inputArray.Length - 1; j++)
  234.                 {
  235.                     int temp = inputArray[j];
  236.                     inputArray[j] = inputArray[j + 1];
  237.                     inputArray[j + 1] = temp;
  238.                 }
  239.             }
  240.             return inputArray;
  241.         }
  242.     }
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement