Используя функции и массивы выполнить задания - 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)));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д