На место минимального и максимального элементов поставить среднее значение - C#

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

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

Вечер добрый, помогите доделать код к задаче, половину сделал : нашёл минимальный, максимальный элемент и среднее значение элементов, а вот с перестановками элементов совсем не дружу... На место минимального и максимального элементов поставить среднее значение. В полученном массиве процедуру повторить. Средние и последний вариант массива являются результатом решения задачи.
int n;
            Console.WriteLine("Введите размерность МАССИВА");
            n = int.Parse(Console.ReadLine());
            {
                
                    int[] mas = new int[n];
                    Random rand = new Random();
                    for (int i = 0; i < n; i++)
                    {
                        mas[i] = rand.Next(-21, 21);
                    }
                    for (int i = 0; i < n; ++i)
                        Console.Write("\t" + mas[i]);
                    Console.WriteLine();

                int min = mas[0];
                    for (int i = 0; i < n; ++i)
                        if (mas[i] <= min)
                            //найдено минимальное значение 
                            min = mas[i];
                    Console.WriteLine();
                    Console.Write("Минимальное значение массива:\t" + min);

                    int max = int.MinValue;
                    for (int i = 0; i < mas.Length; i++)
                    {
                        if (mas[i]>max)
                        {//найдено большее значение
                            max = mas[i];}
                    }
                        Console.WriteLine();
                        Console.WriteLine("Максимальное значение массива:\t" + max);

                double sum = 0;
                for (int i = 0; i < mas.Length; i++)
                {sum += mas[i];}
                Console.WriteLine("Среднее значение элементов массива " + sum / mas.Length);
 
                }
                   
                Console.ReadKey();

Решение задачи: «На место минимального и максимального элементов поставить среднее значение»

textual
Листинг программы
using System;
using System.Linq;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите размерность массива: ");
            int n = int.Parse(Console.ReadLine());
            Random rnd = new Random();
            double[] mas = Enumerable.Range(0, n).Select(v => (double)rnd.Next(1, 20)).ToArray();
            Console.Write($"Исходный массив: {String.Join(" ", mas)}\n");
            for (int i = 0; i < mas.Length / 2; i++)
            {
                double ave = mas.Average();
                mas = mas.Select(v => v == mas.Max() ? ave : v == mas.Min() ? ave : v).ToArray();
            }
            Console.Write($"Результат: {String.Join(" ", mas.Select(v => v.ToString("#.###")))}");
            Console.ReadKey();
        }
    }
}

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


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

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

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