Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.65 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3.  
  4. class Program
  5. {
  6.     static Random generator = new Random();
  7.     public static int InputN()
  8.     {
  9.         int result;
  10.         Console.WriteLine("Введите число элементов массива");
  11.         string s;
  12.         do
  13.         {
  14.             s = Console.ReadLine();
  15.             if (!int.TryParse(s, out result) || result <= 0 || result > 100)
  16.                 Console.WriteLine("Введено неверное число, повторите попытку");
  17.         } while (!int.TryParse(s, out result) || result <= 0 || result > 100);
  18.         return result;
  19.     }
  20.     public static int InputK()
  21.     {
  22.         int result;
  23.         Console.WriteLine("Введите число k");
  24.         string s;
  25.         do
  26.         {
  27.             s = Console.ReadLine();
  28.             if (!int.TryParse(s, out result) || result <= 0 || result >= 1000)
  29.                 Console.WriteLine("Введено неверное число, повторите попытку");
  30.         } while (!int.TryParse(s, out result) || result <= 0 || result >= 1000);
  31.         return result;
  32.     }
  33.     public static int[] CreateArray(int N, int k)
  34.     {
  35.         int[] result = new int[N];
  36.         for (int i = 0; i < N; i++)
  37.         {
  38.             if (i % k == 0)
  39.                 result[i] = generator.Next(-999, 1001);
  40.             else
  41.             {
  42.  
  43.                 int randomElem;
  44.                 do
  45.                 {
  46.                     randomElem = generator.Next(-3 * k, 5 * k);
  47.                 } while (randomElem % 2 != 0);
  48.                 result[i] = randomElem;
  49.             }
  50.         }
  51.         return result;
  52.     }
  53.     public static int CounterOfK(int[] Arr, int k)
  54.     {
  55.         int previousK = Arr[0];
  56.         int Count = 0;
  57.         for (int i = 1; i < Arr.Length; i++)
  58.         {
  59.             if (i % k == 0)
  60.             {
  61.                 if (Arr[i] > previousK)
  62.                     Count++;
  63.                 previousK = Arr[i];
  64.             }
  65.         }
  66.         return Count;
  67.     }
  68.     public static int Difference(int[] Arr, int k)
  69.     {
  70.         int MaxElem = Arr[0];
  71.         int MinElem = Arr[0];
  72.         for (int i = 1; i < Arr.Length; i++)
  73.         {
  74.             if (i % k == 0)
  75.             {
  76.                 if (Arr[i] > MaxElem)
  77.                     MaxElem = Arr[i];
  78.                 if (Arr[i] < MinElem)
  79.                     MinElem = Arr[i];
  80.             }
  81.         }
  82.         int result = MaxElem - MinElem;
  83.         return result;
  84.     }
  85.  
  86.  
  87.     static void Main(string[] args)
  88.     {
  89.         do
  90.         {
  91.             Console.Clear();
  92.             int N = InputN();
  93.             int K = InputK();
  94.             int[] Array = CreateArray(N, K);
  95.             int CountK = CounterOfK(Array, K);
  96.             if (CountK != 0)
  97.             {
  98.                 int[] ArrayK = new int[CountK];
  99.                 int previousK = Array[0];
  100.                 int m = 0;
  101.                 for (int i = 1; i < Array.Length; i++)
  102.                 {
  103.                     if (i % K == 0)
  104.                     {
  105.                         if (Array[i] > previousK)
  106.                         {
  107.                             ArrayK[m] = Array[i];
  108.                             m++;
  109.                         }
  110.                         previousK = Array[i];
  111.                     }
  112.                 }
  113.                 try
  114.                 {
  115.                     string ArrayString = "";
  116.                     foreach (int item in Array)
  117.                     {
  118.                         ArrayString += ($"{item.ToString()} ");
  119.                     }
  120.                     string Answer = "";
  121.                     foreach (int item in ArrayK)
  122.                         Answer += ($"{item.ToString()} ");
  123.                     File.WriteAllText("out.txt", ArrayString);
  124.                     File.AppendAllText("out.txt", "\r\n");
  125.                     File.AppendAllText("out.txt", Answer);
  126.                     Console.WriteLine(ArrayString);
  127.                     Console.WriteLine(Answer);
  128.                     int difference = Difference(Array, K);
  129.                     Console.WriteLine(difference);
  130.                 }
  131.                 catch (Exception e)
  132.                 {
  133.                     Console.WriteLine($"Произошла ошибка{e.Message}");
  134.                 }
  135.             }
  136.             else
  137.             {
  138.                 Console.WriteLine("Не нашлось нужных элементов");
  139.             }
  140.             Console.WriteLine("Чтобы выйти из программы нажмите Esc, чтобы продолжить - любую другую клавишу");
  141.         } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement