Advertisement
dragonbs

Array Manipulator

Feb 22nd, 2023
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.06 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4.  
  5. class Program
  6. {
  7.     static int[] Exchange(int[] arr, int position)
  8.     {
  9.         if (position >= arr.Length || position < 0)
  10.         {
  11.             Console.WriteLine("Invalid index");
  12.             return arr;
  13.         }
  14.  
  15.         int[] tempArray = new int[arr.Length];
  16.         int newPosition = 0;
  17.         for (int i = position + 1; i < arr.Length; i++)
  18.         {
  19.             tempArray[newPosition] = arr[i];
  20.             newPosition++;
  21.         }
  22.         for (int i = 0; i <= position; i++)
  23.         {
  24.             tempArray[newPosition] = arr[i];
  25.             newPosition++;
  26.         }
  27.         return tempArray;
  28.     }
  29.  
  30.     static void MaxEven(int[] arr)
  31.     {
  32.         int maxEvenValue = int.MinValue;
  33.         int maxEvenIndex = -1;
  34.         for (int i = 0; i < arr.Length; i++)
  35.             if (arr[i] % 2 == 0 && arr[i] >= maxEvenValue)
  36.             {
  37.                 maxEvenIndex = i;
  38.                 maxEvenValue = arr[i];
  39.             }
  40.         if (maxEvenIndex == -1) Console.WriteLine("No matches");
  41.         else Console.WriteLine(maxEvenIndex);
  42.     }
  43.  
  44.     static void MaxOdd(int[] arr)
  45.     {
  46.         int maxOddValue = int.MinValue;
  47.         int maxOddIndex = -1;
  48.         for (int i = 0; i < arr.Length; i++)
  49.             if (arr[i] % 2 == 1 && arr[i] >= maxOddValue)
  50.             {
  51.                 maxOddIndex = i;
  52.                 maxOddValue = arr[i];
  53.             }
  54.         if (maxOddIndex == -1) Console.WriteLine("No matches");
  55.         else Console.WriteLine(maxOddIndex);
  56.     }
  57.  
  58.     static void MinEven(int[] arr)
  59.     {
  60.         int minEvenValue = int.MaxValue;
  61.         int minEvenIndex = -1;
  62.         for (int i = 0; i < arr.Length; i++)
  63.             if (arr[i] % 2 == 0 && arr[i] <= minEvenValue)
  64.             {
  65.                 minEvenIndex = i;
  66.                 minEvenValue = arr[i];
  67.             }
  68.         if (minEvenIndex == -1) Console.WriteLine("No matches");
  69.         else Console.WriteLine(minEvenIndex);
  70.     }
  71.  
  72.     static void MinOdd(int[] arr)
  73.     {
  74.         int minOddValue = int.MaxValue;
  75.         int minOddIndex = -1;
  76.         for (int i = 0; i < arr.Length; i++)
  77.             if (arr[i] % 2 == 1 && arr[i] <= minOddValue)
  78.             {
  79.                 minOddIndex = i;
  80.                 minOddValue = arr[i];
  81.             }
  82.         if (minOddIndex == -1) Console.WriteLine("No matches");
  83.         else Console.WriteLine(minOddIndex);
  84.     }
  85.  
  86.     static void FirstEven(int[] arr, int count)
  87.     {
  88.         StringBuilder sb = new StringBuilder();
  89.         sb.Append("[");
  90.         for (int i = 0; i < arr.Length; i++)
  91.         {
  92.             if (arr[i] % 2 == 0)
  93.             {
  94.                 sb.Append(arr[i] + ", ");
  95.                 if (--count == 0) break;
  96.             }
  97.         }
  98.         if (sb.Length > 1) sb.Remove(sb.Length - 2, 2);
  99.         sb.Append("]");
  100.         Console.WriteLine(sb.ToString());
  101.     }
  102.  
  103.     static void FirstOdd(int[] arr, int count)
  104.     {
  105.         StringBuilder sb = new StringBuilder();
  106.         sb.Append("[");
  107.         for (int i = 0; i < arr.Length; i++)
  108.         {
  109.             if (arr[i] % 2 == 1)
  110.             {
  111.                 sb.Append(arr[i] + ", ");
  112.                 if (--count == 0) break;
  113.             }
  114.         }
  115.         if (sb.Length > 1) sb.Remove(sb.Length - 2, 2);
  116.         sb.Append("]");
  117.         Console.WriteLine(sb.ToString());
  118.     }
  119.  
  120.     static void LastEven(int[] arr, int count)
  121.     {
  122.         StringBuilder sb = new StringBuilder();
  123.         sb.Append("]");
  124.         for (int i = arr.Length - 1; i >= 0; i--)
  125.         {
  126.             if (arr[i] % 2 == 0)
  127.             {
  128.                 sb.Insert(0, ", " + arr[i]);
  129.                 if (--count == 0) break;
  130.             }
  131.         }
  132.         if (sb.Length > 1) sb.Remove(0, 2);
  133.         sb.Insert(0, "[");
  134.         Console.WriteLine(sb.ToString());
  135.     }
  136.  
  137.     static void LastOdd(int[] arr, int count)
  138.     {
  139.         StringBuilder sb = new StringBuilder();
  140.         sb.Append("]");
  141.         for (int i = arr.Length - 1; i >= 0; i--)
  142.         {
  143.             if (arr[i] % 2 == 1)
  144.             {
  145.                 sb.Insert(0, ", " + arr[i]);
  146.                 if (--count == 0) break;
  147.             }
  148.         }
  149.         if (sb.Length > 1) sb.Remove(0, 2);
  150.         sb.Insert(0, "[");
  151.         Console.WriteLine(sb.ToString());
  152.     }
  153.  
  154.     static void Main()
  155.     {
  156.         int[] mainArray = Console.ReadLine().Split().Select(int.Parse).ToArray();
  157.         string input;
  158.         while ((input = Console.ReadLine()) != "end")
  159.         {
  160.             string[] command = input.Split().ToArray();
  161.             switch (command[0])
  162.             {
  163.                 case "exchange":
  164.                     mainArray = Exchange(mainArray, int.Parse(command[1]));
  165.                     break;
  166.                 case "max":
  167.                     if (command[1] == "even") MaxEven(mainArray);
  168.                     else if (command[1] == "odd") MaxOdd(mainArray);
  169.                     break;
  170.                 case "min":
  171.                     if (command[1] == "even") MinEven(mainArray);
  172.                     else if (command[1] == "odd") MinOdd(mainArray);
  173.                     break;
  174.                 case "first":
  175.                     if ((int.Parse(command[1]) > mainArray.Length)) Console.WriteLine("Invalid count");
  176.                     else if (command[2] == "even") FirstEven(mainArray, int.Parse(command[1]));
  177.                     else if (command[2] == "odd") FirstOdd(mainArray, int.Parse(command[1]));
  178.                     break;
  179.                 case "last":
  180.                     if ((int.Parse(command[1]) > mainArray.Length)) Console.WriteLine("Invalid count");
  181.                     else if (command[2] == "even") LastEven(mainArray, int.Parse(command[1]));
  182.                     else if (command[2] == "odd") LastOdd(mainArray, int.Parse(command[1]));
  183.                     break;
  184.             }
  185.         }
  186.         Console.Write("[");
  187.         for (int i = 0; i < mainArray.Length - 1; i++)
  188.         {
  189.             Console.Write(mainArray[i] + ", ");
  190.         }
  191.         Console.WriteLine(mainArray[mainArray.Length - 1] + (string)"]");
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement