c# написать простую программу с использованием цикла foreach, которая в одномерном массиве со случайными элементами находит максимальный и минимальный элементы, затем считает произведение элементов массива между макс и минимум (без них) и выводит результат. Очень нужно, отдам все 40 баллов
MaxLevs:
И чего, прям "лучший ответ" подгонишь?
Ответы на вопрос
Ответил MaxLevs
2
С#
Произведение находится за вычетом максимального и минимального элементов. Если они встречаются несколько раз, то вычетаются по одному разу.
Код:
- 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<T>(IEnumerable<T> arr)
- {
- foreach (var el in arr)
- {
- Console.Write(el);
- Console.Write(" ");
- }
- Console.WriteLine();
- }
- }
- }
Приложения:


int seedMin = new Random().Next(1, 40);
int seedMax = new Random().Next(seedMin + 5, seedMin + 40);
bool maxIsCatched = false, minIsCatched = false;
дальше я понимаю, а то по запросу maxIsCatched не находит совсем ничего
Новые вопросы
Русский язык,
2 года назад
Английский язык,
2 года назад
Алгебра,
2 года назад
Литература,
2 года назад
Математика,
8 лет назад