Используя функции и массивы выполнить задания - 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)));
    }
}

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


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

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

14   голосов , оценка 4.357 из 5
Похожие ответы