Используя функции и массивы выполнить задания - C#
Формулировка задачи:
• сумму элементов массива с нечетными номерами;
• сумму элементов массива, расположенных между первым и последним отрицательными элементами;
• сжать массив, удалив из него все элементы, модуль которых не превышает 1. Что освободились в конце массива элементы заполнить нулями.
Уже есть код, в котором создавался массив, но надо его переделать используя функции:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Mass { class Program { private static double count; static void Main(string[] args) { Random rnd = new Random(); Console.Write("Введите размер массива "); int N = int.Parse(Console.ReadLine()); double[] Mass = new double[N]; //Заполняем массив Console.WriteLine("Выберите ручной или автоматический вариант заполнения массива"); Console.WriteLine(" 1 - Ручной ввод\n 2 - Автоматический ввод"); swVVOD: int vvod = int.Parse(Console.ReadLine()); switch (vvod) { case 1: { Console.Write("Введите элементы массива\n\n"); for (int i = 0; i < N; i++) { Mass[i] = double.Parse(Console.ReadLine()); } break; } case 2: { Console.Write("\nИсходный массив\n\n"); for (int i = 0; i < N; i++) { Mass[i] = (double)(rnd.NextDouble() * rnd.Next(-10, 5)); Console.Write("{0} ", Mass[i]); } break; } } //Console.Write("\nИсходный массив\n\n"); //Вычисляем сумму элементов массива с нечетными номерами double nechetSum = 0; for (int i = 1; i < Mass.Length; i++) { if (Mass[i] % 2 != 0) nechetSum += Mass[i]; } Console.WriteLine("\n\nСумма нечетных элементов = {0}", nechetSum.ToString()); //Вычисляем сумму элементов массива между крайними отрицательными элементами double SumMejdu = Mass.SkipWhile(r => r >= 0).Skip(1).Reverse().SkipWhile(r => r >= 0).Skip(1).Sum(); Console.WriteLine("\nСумма элементов между отрицательными элементами = {0}\n", SumMejdu.ToString()); //Убираем элементы с модулем менее единицы for (int i = 0; i < N; i++) { if (Math.Abs(Mass[i]) < 1) Mass[i] = 0; } //Сжимаем массив и заполняем освобожденные элементы нулями for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if (Mass[i] == 0) { Mass[i] = Mass[j]; Mass[j] = 0; } else break; } } Console.WriteLine("Измененный массив\n"); foreach (double i in Mass) Console.Write("{0} ", i); Console.WriteLine(); Console.ReadKey(); } } }
Решение задачи: «Используя функции и массивы выполнить задания»
textual
Листинг программы
using System; using System.Linq; using System.Collections.Generic; class Program { public static void Main() { List<int> lst = Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-10, 11)).ToList(); Console.WriteLine(String.Join(", ", lst)); Console.WriteLine(lst.Select((x, i) => i % 2 == 0 ? 0 : x).Sum()); Console.WriteLine(lst.SkipWhile(x => x >= 0).Skip(1).Reverse().SkipWhile(x => x >= 0).Skip(1).Sum()); Console.WriteLine(String.Join(", ", lst.Select(x => Math.Abs(x) > 1 ? x : 0).OrderBy(x => x == 0))); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д