Advertisement
Guest User

02. Array Manipulator

a guest
Apr 29th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.03 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5.  
  6. namespace ExamPreparation3
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             var array = Console.ReadLine()
  13.                  .Split()
  14.                  .Select(int.Parse)
  15.                  .ToArray();
  16.             int maxOdd = 0;
  17.             int maxEven = 1;
  18.             int minEven = int.MaxValue;
  19.             int minOdd = int.MaxValue;
  20.  
  21.             string command = Console.ReadLine();
  22.             while (command != "end")
  23.             {
  24.                 if(command.Contains("exchange"))
  25.                 {
  26.                     var inputParams = command.Split();
  27.                     var index = int.Parse(inputParams[1]);
  28.                     if (index >= 0 && index < array.Length)
  29.                     {
  30.                         var leftSide = array.Take(index + 1);
  31.                         var rightSide = array.Skip(index + 1);
  32.                         var combine = rightSide.Concat(leftSide).ToArray();
  33.                         array = combine;
  34.                     }
  35.                     else
  36.                     {
  37.                         Console.WriteLine("Invalid index");
  38.                     }
  39.                 }
  40.                 else if(command == "max odd")
  41.                 {
  42.                     for (int i = 0; i < array.Length; i++)
  43.                     {
  44.                         if(array[i] % 2 != 0)
  45.                         {
  46.                             if(array[i] > maxOdd)
  47.                             {
  48.                                 maxOdd = array[i];
  49.                             }
  50.                         }
  51.                     }
  52.                    if(maxOdd != 0)
  53.                     {
  54.                         var indexOf = Array.LastIndexOf(array,maxOdd);
  55.                         Console.WriteLine(indexOf);
  56.                     }
  57.                     else
  58.                     {
  59.                         Console.WriteLine("No matches");
  60.                     }
  61.                 }
  62.                 else if (command == "max even")
  63.                 {
  64.                     for (int i = 0; i < array.Length; i++)
  65.                     {
  66.                         if (array[i] % 2 == 0)
  67.                         {
  68.                             if (array[i] > maxEven)
  69.                             {
  70.                                 maxEven = array[i];
  71.                             }
  72.                         }
  73.                     }
  74.                     if (maxEven != 1)
  75.                     {
  76.                         var indexOf = Array.LastIndexOf(array, maxEven);
  77.                         Console.WriteLine(indexOf);
  78.                     }
  79.                     else
  80.                     {
  81.                         Console.WriteLine("No matches");
  82.                     }
  83.                 }
  84.                 else if (command == "min even")
  85.                 {
  86.                     for (int i = 0; i < array.Length; i++)
  87.                     {
  88.                         if (array[i] % 2 == 0)
  89.                         {
  90.                             if (array[i] < minEven)
  91.                             {
  92.                                 minEven = array[i];
  93.                             }
  94.                         }
  95.                     }
  96.                     if (minEven != int.MaxValue)
  97.                     {
  98.                         var indexOf = Array.LastIndexOf(array, minEven);
  99.                         Console.WriteLine(indexOf);
  100.                     }
  101.                     else
  102.                     {
  103.                         Console.WriteLine("No matches");
  104.                     }
  105.                 }
  106.                 else if (command == "min odd")
  107.                 {
  108.                     for (int i = 0; i < array.Length; i++)
  109.                     {
  110.                         if (array[i] % 2 != 0)
  111.                         {
  112.                             if (array[i] < minOdd)
  113.                             {
  114.                                 minOdd = array[i];
  115.                             }
  116.                         }
  117.                     }
  118.                     if (minOdd != int.MaxValue)
  119.                     {
  120.                         var indexOf = Array.LastIndexOf(array, minOdd);
  121.                         Console.WriteLine(indexOf);
  122.                     }
  123.                     else
  124.                     {
  125.                         Console.WriteLine("No matches");
  126.                     }
  127.                 }
  128.                 else if (command.Contains("first"))
  129.                 {
  130.                     var inputParams = command.Split().ToArray();
  131.                     var count = inputParams[1];
  132.                     if (int.Parse(count) <= array.Length)
  133.                     {
  134.                         if (inputParams[2] == "odd")
  135.                         {
  136.                             var Odd = new List<int>();
  137.                             for (int i = 0; i < array.Length; i++)
  138.                             {
  139.                                 if (array[i] % 2 != 0)
  140.                                 {
  141.                                     Odd.Add(array[i]);
  142.                                 }
  143.                             }
  144.                             var result = Odd.Take(int.Parse(count)).ToArray();
  145.                             Console.WriteLine("[" + string.Join(", ", result) + "]");
  146.                         }
  147.                         if (inputParams[2] == "even")
  148.                         {
  149.                             var Even = new List<int>();
  150.                             for (int i = 0; i < array.Length; i++)
  151.                             {
  152.                                 if (array[i] % 2 == 0)
  153.                                 {
  154.                                     Even.Add(array[i]);
  155.                                 }
  156.                             }
  157.                             var result = Even.Take(int.Parse(count)).ToArray();
  158.                             Console.WriteLine("[" + string.Join(", ", result) + "]");
  159.                         }
  160.                     }
  161.                     else
  162.                     {
  163.                         Console.WriteLine("Invalid count");
  164.                     }
  165.                 }
  166.                 else if(command.Contains("last"))
  167.                 {
  168.                     var inputParams = command.Split();
  169.                     var count = inputParams[1];
  170.                     if (int.Parse(count) <= array.Length)
  171.                     {
  172.                         if (inputParams[2] == "odd")
  173.                         {
  174.                             var Odd = new List<int>();
  175.                             for (int i = 0; i < array.Length; i++)
  176.                             {
  177.                                 if (array[i] % 2 != 0)
  178.                                 {
  179.                                     Odd.Add(array[i]);
  180.                                 }
  181.                             }
  182.  
  183.                             Odd.Reverse();
  184.                             var result = Odd.Take(int.Parse(count)).ToArray();
  185.                             Console.WriteLine("[" + string.Join(", ", result) + "]");
  186.                         }
  187.                         if (inputParams[2] == "even")
  188.                         {
  189.                             var Even = new List<int>();
  190.                             for (int i = 0; i < array.Length; i++)
  191.                             {
  192.                                 if (array[i] % 2 == 0)
  193.                                 {
  194.                                     Even.Add(array[i]);
  195.                                 }
  196.                             }
  197.                             Even.Reverse();
  198.                             var result = Even.Take(int.Parse(count)).ToArray();
  199.                             Console.WriteLine("[" + string.Join(", ", result) + "]");
  200.                         }
  201.                     }
  202.                     else
  203.                     {
  204.                         Console.WriteLine("Invalid count");
  205.                     }
  206.  
  207.                 }
  208.                 command = Console.ReadLine();
  209.             }
  210.             Console.WriteLine("[" + string.Join(", ",array) + "]");
  211.         }
  212.     }
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement