petyaminkova91

Untitled

Oct 13th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.26 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace ArrayManipulator
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. int[] array = Console.ReadLine().
  11. Split()
  12. .Select(int.Parse)
  13. .ToArray();
  14.  
  15. string command = Console.ReadLine();
  16.  
  17. while (command != "end")
  18. {
  19. string[] commandParts = command.Split();
  20.  
  21. if (commandParts[0] == "exchange")
  22. {
  23. GetExchangedArray(array, commandParts);
  24. }
  25. else if (commandParts[0] == "max")
  26. {
  27. switch (commandParts[1])
  28. {
  29. case "even":
  30. PrintMaxEven(array);
  31. break;
  32. case "odd":
  33. PrintMaxOdd(array);
  34. break;
  35. }
  36. }
  37. else if (commandParts[0] == "min")
  38. {
  39. switch (commandParts[1])
  40. {
  41. case "even":
  42. PrintMinEven(array);
  43. break;
  44. case "odd":
  45. PrintMinOdd(array);
  46. break;
  47. }
  48. }
  49. else if (commandParts[0] == "first")
  50. {
  51. switch (commandParts[2])
  52. {
  53. case "even":
  54. PrintFirstEvenElements(array, commandParts);
  55. break;
  56. case "odd":
  57. PrintFirstOddElements(array, commandParts);
  58. break;
  59. }
  60. }
  61. else if (commandParts[0] == "last")
  62. {
  63. switch (commandParts[2])
  64. {
  65. case "even":
  66. PrintLastEvenElements(array, commandParts);
  67. break;
  68. case "odd":
  69. PrintLastOddElements(array, commandParts);
  70. break;
  71. }
  72. }
  73.  
  74. command = Console.ReadLine();
  75. }
  76.  
  77. Console.WriteLine($"[{String.Join(", ", array)}]");
  78. }
  79.  
  80. static void GetExchangedArray(int[] arr, string[] array)
  81. {
  82. int IndexChange = int.Parse(array[1]);
  83.  
  84. if (IndexChange >= arr.Length || IndexChange < 0)
  85. {
  86. Console.WriteLine("Invalid index");
  87. return;
  88. }
  89.  
  90. int rotations = IndexChange + 1;
  91.  
  92. for (int i = 0; i < rotations; i++)
  93. {
  94. int first = arr[0];
  95.  
  96. for (int j = 0; j < arr.Length - 1; j++)
  97. {
  98. arr[j] = arr[j + 1];
  99. }
  100.  
  101. arr[arr.Length - 1] = first;
  102. }
  103. }
  104.  
  105. static void PrintMaxEven(int[] arr)
  106. {
  107. int maxElement = int.MinValue;
  108. int maxIndex = arr.Length;
  109.  
  110. for (int i = 0; i < arr.Length; i++)
  111. {
  112. if (arr[i] % 2 == 0 && arr[i] >= maxElement)
  113. {
  114. maxElement = arr[i];
  115. maxIndex = i;
  116. }
  117. }
  118.  
  119. if (maxIndex == arr.Length)
  120. {
  121. Console.WriteLine("No matches");
  122. }
  123. else
  124. {
  125. Console.WriteLine(maxIndex);
  126. }
  127. }
  128. static void PrintMaxOdd(int[] arr)
  129. {
  130. int maxElement = int.MinValue;
  131. int maxIndex = arr.Length;
  132.  
  133. for (int i = 0; i < arr.Length; i++)
  134. {
  135. if (arr[i] % 2 != 0 && arr[i] >= maxElement)
  136. {
  137. maxElement = arr[i];
  138. maxIndex = i;
  139. }
  140. }
  141.  
  142. if (maxIndex == arr.Length)
  143. {
  144. Console.WriteLine("No matches");
  145. }
  146. else
  147. {
  148. Console.WriteLine(maxIndex);
  149. }
  150. }
  151.  
  152. static void PrintMinEven(int[] arr)
  153. {
  154. int minElement = int.MaxValue;
  155. int minIndex = -1;
  156.  
  157. for (int i = 0; i < arr.Length; i++)
  158. {
  159. if (arr[i] % 2 == 0 && arr[i] <= minElement)
  160. {
  161. minElement = arr[i];
  162. minIndex = i;
  163. }
  164. }
  165. if (minIndex == -1)
  166. {
  167. Console.WriteLine("No matches");
  168. }
  169. else
  170. {
  171. Console.WriteLine(minIndex);
  172. }
  173. }
  174.  
  175. static void PrintMinOdd(int[] arr)
  176. {
  177. int minElement = int.MaxValue;
  178. int minIndex = -1;
  179.  
  180. for (int i = 0; i < arr.Length; i++)
  181. {
  182. if (arr[i] % 2 != 0 && arr[i] <= minElement)
  183. {
  184. minElement = arr[i];
  185. minIndex = i;
  186. }
  187. }
  188. if (minIndex == -1)
  189. {
  190. Console.WriteLine("No matches");
  191. }
  192. else
  193. {
  194. Console.WriteLine(minIndex);
  195. }
  196. }
  197.  
  198. static void PrintFirstEvenElements(int[] arr, string[] array)
  199. {
  200. int wantedCountOfEvenElements = int.Parse(array[1]);
  201.  
  202. if (wantedCountOfEvenElements > arr.Length)
  203. {
  204. Console.WriteLine("Invalid count");
  205. return;
  206. }
  207.  
  208. string firstEvenElements = "";
  209. int count = 0;
  210.  
  211. for (int i = 0; i < arr.Length; i++)
  212. {
  213. if (arr[i] % 2 == 0 && count < wantedCountOfEvenElements)
  214. {
  215. firstEvenElements += arr[i].ToString();
  216. count++;
  217. }
  218. }
  219.  
  220. char[] firstEvensEl = firstEvenElements.ToArray();
  221.  
  222. Console.WriteLine($"[{String.Join(", ", firstEvensEl)}]");
  223. }
  224.  
  225. static void PrintFirstOddElements(int[] arr, string[] array)
  226. {
  227. int wantedCountOfOddElements = int.Parse(array[1]);
  228.  
  229. if (wantedCountOfOddElements > arr.Length)
  230. {
  231. Console.WriteLine("Invalid count");
  232. return;
  233. }
  234.  
  235. string firstOddElements = "";
  236. int count = 0;
  237.  
  238. for (int i = 0; i < arr.Length; i++)
  239. {
  240. if (arr[i] % 2 != 0 && count < wantedCountOfOddElements)
  241. {
  242. firstOddElements += arr[i].ToString();
  243. count++;
  244. }
  245. }
  246.  
  247. char[] firstOddsEl = firstOddElements.ToArray();
  248.  
  249. Console.WriteLine($"[{String.Join(", ", firstOddsEl)}]");
  250. }
  251.  
  252. static void PrintLastEvenElements(int[] arr, string[] array)
  253. {
  254. int wantedCountOfEvenElements = int.Parse(array[1]);
  255.  
  256. if (wantedCountOfEvenElements > arr.Length)
  257. {
  258. Console.WriteLine("Invalid count");
  259. return;
  260. }
  261.  
  262. string lastEvenElements = "";
  263. int count = 0;
  264.  
  265. for (int i = arr.Length - 1; i >= 0; i--)
  266. {
  267. if (arr[i] % 2 == 0 && count < wantedCountOfEvenElements)
  268. {
  269. lastEvenElements += arr[i].ToString();
  270. count++;
  271. }
  272. }
  273.  
  274. char[] lastEvensElem = lastEvenElements.ToArray();
  275. char[] reversedArr = new char[lastEvensElem.Length];
  276.  
  277. for (int i = 0; i < lastEvensElem.Length; i++)
  278. {
  279. reversedArr[i] = lastEvensElem[lastEvensElem.Length - i - 1];
  280. }
  281.  
  282. Console.WriteLine($"[{string.Join(", ", lastEvensElem)}]");
  283. }
  284.  
  285. static void PrintLastOddElements(int[] arr, string[] array)
  286. {
  287. int wantedCountOfOddElements = int.Parse(array[1]);
  288.  
  289. if (wantedCountOfOddElements > arr.Length)
  290. {
  291. Console.WriteLine("Invalid count");
  292. return;
  293. }
  294.  
  295. string lastOddElements = "";
  296. int count = 0;
  297.  
  298. for (int i = arr.Length - 1; i >= 0; i--)
  299. {
  300. if (arr[i] % 2 != 0 && count < wantedCountOfOddElements)
  301. {
  302. lastOddElements += arr[i].ToString();
  303. count++;
  304. }
  305. }
  306.  
  307. char[] lastOddsElem = lastOddElements.ToArray();
  308. char[] reversedArr = new char[lastOddsElem.Length];
  309.  
  310. for (int i = 0; i < lastOddsElem.Length; i++)
  311. {
  312. reversedArr[i] = lastOddsElem[lastOddsElem.Length - i - 1];
  313. }
  314.  
  315. Console.WriteLine($"[{string.Join(", ", lastOddsElem)}]");
  316. }
  317. }
  318. }
Advertisement
Add Comment
Please, Sign In to add comment