Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading.Tasks;
- namespace task_02
- {
- class Program
- {
- static Random rnd = new Random();
- /// <summary>
- /// Поиск среднего арифметического.
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- static double MidValue(int[] arr)
- {
- double summery = 0;
- for (int i = 0; i < arr.Length; i++)
- {
- summery += arr[i];
- }
- return summery / arr.Length;
- }
- /// <summary>
- /// Нахождение медианы.
- /// </summary>
- /// <param name="N"></param>
- /// <param name="arr"></param>
- /// <returns></returns>
- static double FindMedian(int N, int[] arr)
- {
- int[] medarr = new int[N];
- Array.Copy(arr, medarr, N);
- Array.Sort(medarr);
- if (N % 2 != 0)
- {
- return medarr[N / 2 - 1]; // 0 1 2 3 4 5
- }
- return (medarr[N / 2 - 1] + medarr[N / 2]) / 2.0;
- }
- /// <summary>
- /// Поиск самого длинного подмассива подряд идущих простых чисел.
- /// </summary>
- /// <param name="arr"></param>
- /// <returns></returns>
- static int[] FindMaxOdd(int[] arr)
- {
- int count2 = 0, count1 = 0, index = 0;
- for (int i = 0; i < arr.Length; i++)
- {
- if (arr[i] % 2 == 1)
- {
- count1 += 1;
- }
- if (count1 > count2)
- {
- index = i;
- count2 = count1;
- }
- if (arr[i] % 2 == 0)
- {
- count1 = 0;
- }
- }
- int[] oddarr = new int[count2];
- for (int i = 0; i < count2; i++)
- {
- oddarr[i] = arr[index - count2 + 1 + i];
- }
- return oddarr;
- }
- /// <summary>
- /// Частота вхождения символов.
- /// </summary>
- /// <param name="arr"></param>
- static void TimesFound(int[] arr)
- {
- int maxcount = 0, maximum;
- int index = 0;
- int[] arrcounts = new int[10];
- for (int i = 0; i < arr.Length; i++)
- {
- arrcounts[arr[i]] += 1;
- }
- Console.WriteLine("\n");
- Console.WriteLine("Частота встречаемости чисел по убыванию: ");
- for (int i = 0; i < 10; i++)
- {
- maximum = MaxValue(arrcounts, ref index);
- if (maximum == 0)
- {
- continue;
- }
- Console.WriteLine(maximum + " " + index);
- }
- }
- /// <summary>
- /// Максимальное значение.
- /// </summary>
- /// <param name="arrcounts"></param>
- /// <param name="index"></param>
- /// <returns></returns>
- static int MaxValue(int[] arrcounts, ref int index)
- {
- int maxcount = 0;
- for (int i = 0; i < 10; i++)
- {
- if (arrcounts[i] == -1)
- {
- continue;
- }
- if (maxcount < arrcounts[i])
- {
- maxcount = arrcounts[i];
- index = i;
- }
- }
- arrcounts[index] = -1;
- return maxcount;
- }
- static void Main(string[] args)
- {
- // Сгенерировать массив инт чисел, длиной (99, 201), значения (-1, 10)
- // Метод 1: найти среднее значение
- // Метод 2: найти медиану
- // Метод 3: для каждого числа вывести кол-во повторов sort (max, min)
- // Метод 4: извлечь подмассив максимальной длины, все числа которого являются нечет
- // Объявляем переменные.
- int N;
- double average, median;
- N = rnd.Next(10, 20);
- int[] arr = new int[N];
- // Генерируем массив
- for (int i = 0; i < N; i++)
- {
- arr[i] = rnd.Next(0, 10);
- }
- // Вызовом методов находим ср знач и медиану.
- average = MidValue(arr);
- median = FindMedian(N, arr);
- // Нахождение и вывод массива простых чисел
- int[] arrodds = FindMaxOdd(arr);
- Console.WriteLine("Начальный массив: ");
- foreach (var item in arr)
- {
- Console.Write(item + " ");
- }
- Console.WriteLine("\n");
- // Вывод промежуточных результатов
- Console.WriteLine("Среднее значение: " + average);
- Console.WriteLine("Медиана: " + median);
- Console.WriteLine("\n");
- Console.WriteLine("Максимальный нечетный массив: ");
- foreach (var item in arrodds)
- {
- Console.Write(item + " ");
- }
- TimesFound(arr);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement