Используя функции и массивы выполнить задания - C#

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

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

• сумму элементов массива с нечетными номерами; • сумму элементов массива, расположенных между первым и последним отрицательными элементами; • сжать массив, удалив из него все элементы, модуль которых не превышает 1. Что освободились в конце массива элементы заполнить нулями. Уже есть код, в котором создавался массив, но надо его переделать используя функции:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Mass
  6. {
  7. class Program
  8. {
  9. private static double count;
  10. static void Main(string[] args)
  11. {
  12. Random rnd = new Random();
  13. Console.Write("Введите размер массива ");
  14. int N = int.Parse(Console.ReadLine());
  15. double[] Mass = new double[N];
  16. //Заполняем массив
  17. Console.WriteLine("Выберите ручной или автоматический вариант заполнения массива");
  18. Console.WriteLine(" 1 - Ручной ввод\n 2 - Автоматический ввод");
  19. swVVOD:
  20. int vvod = int.Parse(Console.ReadLine());
  21. switch (vvod)
  22. {
  23. case 1:
  24. {
  25. Console.Write("Введите элементы массива\n\n");
  26. for (int i = 0; i < N; i++)
  27. {
  28. Mass[i] = double.Parse(Console.ReadLine());
  29. }
  30. break;
  31. }
  32. case 2:
  33. {
  34. Console.Write("\nИсходный массив\n\n");
  35. for (int i = 0; i < N; i++)
  36. {
  37. Mass[i] = (double)(rnd.NextDouble() * rnd.Next(-10, 5));
  38. Console.Write("{0} ", Mass[i]);
  39. }
  40. break;
  41. }
  42. }
  43. //Console.Write("\nИсходный массив\n\n");
  44. //Вычисляем сумму элементов массива с нечетными номерами
  45. double nechetSum = 0;
  46. for (int i = 1; i < Mass.Length; i++)
  47. {
  48. if (Mass[i] % 2 != 0)
  49. nechetSum += Mass[i];
  50. }
  51. Console.WriteLine("\n\nСумма нечетных элементов = {0}", nechetSum.ToString());
  52. //Вычисляем сумму элементов массива между крайними отрицательными элементами
  53. double SumMejdu = Mass.SkipWhile(r => r >= 0).Skip(1).Reverse().SkipWhile(r => r >= 0).Skip(1).Sum();
  54. Console.WriteLine("\nСумма элементов между отрицательными элементами = {0}\n", SumMejdu.ToString());
  55. //Убираем элементы с модулем менее единицы
  56. for (int i = 0; i < N; i++)
  57. {
  58. if (Math.Abs(Mass[i]) < 1) Mass[i] = 0;
  59. }
  60. //Сжимаем массив и заполняем освобожденные элементы нулями
  61. for (int i = 0; i < N; i++)
  62. {
  63. for (int j = i + 1; j < N; j++)
  64. {
  65. if (Mass[i] == 0)
  66. {
  67. Mass[i] = Mass[j];
  68. Mass[j] = 0;
  69. }
  70. else break;
  71. }
  72. }
  73. Console.WriteLine("Измененный массив\n");
  74. foreach (double i in Mass) Console.Write("{0} ", i);
  75. Console.WriteLine();
  76. Console.ReadKey();
  77. }
  78. }
  79. }

Решение задачи: «Используя функции и массивы выполнить задания»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. class Program
  6. {
  7.     public static void Main()
  8.     {
  9.         List<int> lst = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-10, 11)).ToList();
  10.         Console.WriteLine(String.Join(", ", lst));
  11.         Console.WriteLine(lst.Select((x, i) => i % 2 == 0 ? 0 : x).Sum());
  12.         Console.WriteLine(lst.SkipWhile(x => x >= 0).Skip(1).Reverse().SkipWhile(x => x >= 0).Skip(1).Sum());
  13.         Console.WriteLine(String.Join(", ", lst.Select(x => Math.Abs(x) > 1 ? x : 0).OrderBy(x => x == 0)));
  14.     }
  15. }

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


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

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

14   голосов , оценка 4.357 из 5

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

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

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