C#. Нужна с методами, сделать надо через return. Хоть с некоторыми из них . Коротко на русском:
- одномерный массив вводится с консоли
- метод, который посчитает среднее арифметическое
- метод, что посчитает сумму и произведение элементов до последнего положительного
- метод, сжимает массив, удаляя все элементы которые находятся в промежутке [а,b], заполнить освободившееся места в конце нулями.


C#. Нужна с методами, сделать надо через return. Хоть с некоторыми из них . Коротко на русском:- одн

Dastannn1 Dastannn1    2   04.12.2021 20:01    0

Ответы
sjsdbj sjsdbj  19.01.2022 17:38

using System;

using System.Linq;

namespace restless

{

   class Program

   {

       static double Average(double[] arr)

       {

           double _sum = 0;

           for (int i = 0; i < arr.Length; i++)

               _sum += arr[i];

           return _sum / arr.Length;

       }

       

       static Tuple<double, double> SumProdToLastPositive(double[] arr)

       {

           double _sum = 0, _prod = 1;

           int i = arr.Length - 1;

           while(arr[i] <= 0)

           {

               i--;

           }

           for (int j = 0; j <= i; j++)

           {

               _sum += arr[j];

               _prod *= arr[j];

           }

           return Tuple.Create(_sum, _prod);

       }

       static double[] RemoveElements(double[] arr, double a, double b)

       {

           int startSize = arr.Length;

           var tmp = arr.Cast<double>().ToList();

           for (int i = 0; i < tmp.Count; i++)

           {

               if (arr[i] >= a && arr[i] <= b)

               {

                   tmp.Remove(arr[i]);

               }

           }

           for (int i = 0; i < tmp.Count; i++)

           {

               arr[i] = tmp[i];

           }

           for (int i = tmp.Count; i < startSize; i++)

               arr[i] = 0;

           return arr;

       }

       static void Main()

       {

           Random rnd = new Random();

           double[] arr = new double[10];

           Console.WriteLine("Введите элементы массива (каждый на новой строке): ");

           for (int i = 0; i < 10; i++)

               arr[i] = Convert.ToDouble(Console.ReadLine());

           /*Для удобства проверки сделана генерация только целых чисел*/

           Console.Write("Исходный массив: ");

           for (int i = 0; i < 10; i++)

           {

               Console.Write($"{arr[i]} ");

           }

           Console.WriteLine();

           //функция, которая вернет нам среднее арифметическое

           Console.WriteLine($"Среднее арифметическое: {Average(arr)}");

           //функция, которая вернет нам сумму и произведение элементов до последнего положительного

           Console.WriteLine($"Сумма и произведение до последнего положительного: {SumProdToLastPositive(arr)}");

           /*Последняя функция возвращает массив, мы его запишем в переменную g, а затем выведем на экран.

            Хотя можно было передать массив с модификатором ref и изменять его, ну так тоже пойдёт.

            */

           Console.Write("Изменённый массив после удаления элементов из промежутка [a, b]: ");

           var g = RemoveElements(arr, 2.0, 5.0);

           

           for (int i = 0; i < g.Length; i++)

               Console.Write(g[i] + " ");

       }

   }

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика