Сортировка по убыванию после минимального элемента массива - C#

Узнай цену своей работы

Формулировка задачи:

Помогите доделать задание, 1-ю часть и нахождение минимального элемента сделал. 1. Найти сумму модулей элементов, которые имеют дробную часть меньше 0.5. 2. Сортировать элементы, расположенные после минимального элемента по убыванию значений элементов.
Листинг программы
  1. int n;
  2. bool f;
  3. double sum = 0, min = 0;
  4. do
  5. {
  6. Console.Write("Введите количество элементов: ");
  7. f = int.TryParse(Console.ReadLine(), out n);
  8. if (f == false)
  9. Console.WriteLine("Ошибка! Введено некорректное значение");
  10. } while (!f);
  11. double[] arr = new double[n];
  12. Random rnd = new Random();
  13. for (int i = 0; i < arr.Length; i++)
  14. {
  15. double d = rnd.NextDouble() * (53.44 - (-10.34)) + (-10.34);
  16. arr[i] = Math.Round(d, 2);
  17. Console.WriteLine($"arr[{i}]={arr[i]}");
  18. int k = (int)d;
  19. double drob = d - k;
  20. if (drob < 0.5)
  21. {
  22. sum = sum + Math.Abs(d);
  23. }
  24. }
  25. Console.WriteLine();
  26. Console.WriteLine($"Сума = {sum:F2}");
  27. Console.WriteLine();
  28. for (int i = 0; i < arr.Length; i++)
  29. {
  30. if (min < arr[i])
  31. {
  32. min = arr[i];
  33. }
  34. }
  35. ...
  36. Console.WriteLine("После сортировки:");
  37. for (int i = 0; i < arr.Length; i++)
  38. {
  39. Console.WriteLine($"arr[{i}]={arr[i]}");
  40. }
  41. Console.ReadKey();

Решение задачи: «Сортировка по убыванию после минимального элемента массива»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public class Program
  6. {
  7.     public static void Main()
  8.     {
  9.         int n;
  10.         while (!Int32.TryParse(Console.ReadLine(), out n));
  11.         List<double> lst = Enumerable.Repeat(new Random(), n).Select(r => r.NextDouble() * (53.44 + 10.34) - 10.34).ToList();
  12.         Console.WriteLine(String.Join(", ", lst));
  13.         Console.WriteLine(lst.Where(x => Math.Abs(x - Math.Truncate(x)) < 0.5).Sum(Math.Abs));
  14.         int uptoMin = lst.IndexOf(lst.Min()) + 1;
  15.         Console.WriteLine(String.Join(", ", lst.Take(uptoMin).Concat(lst.Skip(uptoMin).OrderByDescending(x => x))));
  16.     }
  17. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы