c# написать простую программу с использованием цикла foreach, которая в одномерном...

+732 голосов
2.1m просмотров

c# написать простую программу с использованием цикла foreach, которая в одномерном массиве со случайными элементами находит максимальный и минимальный элементы, затем считает произведение элементов массива между макс и минимум (без них) и выводит результат. Очень нужно, отдам все 40 баллов


Информатика | 2.1m просмотров
+64

Ловлю на слове

+96

если работать будет ;)

+179

И чего, прям "лучший ответ" подгонишь?

Дан 1 ответ
+188 голосов

С#

Произведение находится за вычетом максимального и минимального элементов.  Если они встречаются несколько раз, то вычетаются по одному разу.

Код:

  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • namespace ThisAnswerIsNotMine {
  •    class Program {
  •        private static int Size => 7;
  •        private static void Main()
  •        {
  •            int seedMin = new Random().Next(1, 40);
  •            int seedMax = new Random().Next(seedMin + 5, seedMin + 40);
  •            var arr = Enumerable.Repeat(0, Size)
  •                .Select(_ => new Random().Next(seedMin, seedMax))
  •                .ToArray();
  •            
  •            int max = arr[0], min = arr[0];
  •            foreach (var el in arr)
  •            {
  •                max = Math.Max(el, max);
  •                min = Math.Min(el, min);
  •            }
  •            int product = 1;
  •            bool maxIsCatched = false, minIsCatched = false;
  •            foreach (var el in arr)
  •            {
  •                if (!maxIsCatched && el == max)
  •                {
  •                    maxIsCatched = true;
  •                    continue;
  •                }
  •                if (!minIsCatched && el == min)
  •                {
  •                    minIsCatched = true;
  •                    continue;
  •                }
  •                product *= el;
  •            }
  •            
  •            PrintArr(arr);
  •            Console.WriteLine($"Max: {max}; Min: {min}; Product: {product}.");
  •        }
  •        private static void PrintArr(IEnumerable arr)
  •        {
  •            foreach (var el in arr)
  •            {
  •                Console.Write(el);
  •                Console.Write(" ");
  •            }
  •            Console.WriteLine();
  •        }
  •    }
  • }
(7.1k баллов)
+78

скажи пожааааалуйста будь добр последнее значение строки
bool maxIsCatched = false, minIsCatched = false;
дальше я понимаю, а то по запросу maxIsCatched не находит совсем ничего

+120

не злися, я не такая умная как ты, не сидела бы тут

+128

seedMin и seedMax это диапазон для генерации значений. Они могут совпадать с найденными max и min, но далеко не обязательно

+127

Я написал ответ

+184

это имена переменных, с которыми происходит действо или шо