Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- class Program
- {
- static Random generator = new Random();
- public static int InputN()
- {
- int result;
- Console.WriteLine("Введите число элементов массива");
- string s;
- do
- {
- s = Console.ReadLine();
- if (!int.TryParse(s, out result) || result <= 0 || result > 100)
- Console.WriteLine("Введено неверное число, повторите попытку");
- } while (!int.TryParse(s, out result) || result <= 0 || result > 100);
- return result;
- }
- public static int InputK()
- {
- int result;
- Console.WriteLine("Введите число k");
- string s;
- do
- {
- s = Console.ReadLine();
- if (!int.TryParse(s, out result) || result <= 0 || result >= 1000)
- Console.WriteLine("Введено неверное число, повторите попытку");
- } while (!int.TryParse(s, out result) || result <= 0 || result >= 1000);
- return result;
- }
- public static int[] CreateArray(int N, int k)
- {
- int[] result = new int[N];
- for (int i = 0; i < N; i++)
- {
- if (i % k == 0)
- result[i] = generator.Next(-999, 1001);
- else
- {
- int randomElem;
- do
- {
- randomElem = generator.Next(-3 * k, 5 * k);
- } while (randomElem % 2 != 0);
- result[i] = randomElem;
- }
- }
- return result;
- }
- public static int CounterOfK(int[] Arr, int k)
- {
- int previousK = Arr[0];
- int Count = 0;
- for (int i = 1; i < Arr.Length; i++)
- {
- if (i % k == 0)
- {
- if (Arr[i] > previousK)
- Count++;
- previousK = Arr[i];
- }
- }
- return Count;
- }
- public static int Difference(int[] Arr, int k)
- {
- int MaxElem = Arr[0];
- int MinElem = Arr[0];
- for (int i = 1; i < Arr.Length; i++)
- {
- if (i % k == 0)
- {
- if (Arr[i] > MaxElem)
- MaxElem = Arr[i];
- if (Arr[i] < MinElem)
- MinElem = Arr[i];
- }
- }
- int result = MaxElem - MinElem;
- return result;
- }
- static void Main(string[] args)
- {
- do
- {
- Console.Clear();
- int N = InputN();
- int K = InputK();
- int[] Array = CreateArray(N, K);
- int CountK = CounterOfK(Array, K);
- if (CountK != 0)
- {
- int[] ArrayK = new int[CountK];
- int previousK = Array[0];
- int m = 0;
- for (int i = 1; i < Array.Length; i++)
- {
- if (i % K == 0)
- {
- if (Array[i] > previousK)
- {
- ArrayK[m] = Array[i];
- m++;
- }
- previousK = Array[i];
- }
- }
- try
- {
- string ArrayString = "";
- foreach (int item in Array)
- {
- ArrayString += ($"{item.ToString()} ");
- }
- string Answer = "";
- foreach (int item in ArrayK)
- Answer += ($"{item.ToString()} ");
- File.WriteAllText("out.txt", ArrayString);
- File.AppendAllText("out.txt", "\r\n");
- File.AppendAllText("out.txt", Answer);
- Console.WriteLine(ArrayString);
- Console.WriteLine(Answer);
- int difference = Difference(Array, K);
- Console.WriteLine(difference);
- }
- catch (Exception e)
- {
- Console.WriteLine($"Произошла ошибка{e.Message}");
- }
- }
- else
- {
- Console.WriteLine("Не нашлось нужных элементов");
- }
- Console.WriteLine("Чтобы выйти из программы нажмите Esc, чтобы продолжить - любую другую клавишу");
- } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement