M5. Задачи поиска максимума и минимума в массиве

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач на одномерные массивы обязательно учтите рекомендации по оформлению вашего результата!
Решены задачи 5,32. Не решены: 1-4, 6-31, 33-35.

Задачи

M5.1. Дан массив. Определить:
а) максимальный элемент;
б) минимальный элемент;
в) на сколько максимальный элемент больше минимального;
г) индекс максимального элемента;
д) индекс минимального и индекс максимального элементов.
11.108. В массиве хранится информация о количестве страниц в каждой из 100 книг. Все страницы имеют одинаковую толщину. Определить количество страниц в самой толстой книге.
M5.2. В массиве хранится информация о стоимости каждой из 50 марок легковых автомобилей. Определить, сколько стоит самый дорогой автомобиль.
M5.3. В массиве хранится информация о стоимости 1 килограмма 20 видов конфет. Определить, сколько стоят самые дешевые конфеты.
M5.4. В массиве хранится информация о результатах 25 спортсменов, участвовавших в лыжной гонке. Определить результат спортсмена-победителя гонки.
M5.5. В массиве хранится информация о росте 25 человек. Определить, на сколько рост самого высокого человека превышает рост самого низкого.
M5.6. В массиве хранится информация о годе рождения каждого из 30 человек. Определить, на сколько лет возраст самого старого человека превышает возраст самого молодого. При определении возраста учитывать только год рождения (месяц и день не учитывать).
M5.7. В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставило несколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают и с наиболее низкими
оценками. Известны оценки, выставленные восемью судьями одному из участников соревнований. Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.
M5.8. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить порядковый номер самого быстрого автомобиля. Если таких автомобилей несколько, то должен быть найден номер:
а) первого из них;
б) последнего из них.
M5.9. В массиве хранится информация о количестве осадков, выпавших за каждый день июля. Определить дату самого дождливого дня. Если таких дней было несколько, то должна быть найдена дата:
а) первого из них;
б) последнего из них.
M5.10. В массиве хранится информация о стоимости 1 килограмма 30 видов конфет. Определить порядковый номер самого дешевого вида конфет. Если таких видов несколько, то должен быть найден номер:
а) первого из них;
б) последнего из них.
M5.11. В массиве хранится информация о годе рождения каждого из 30 человек. Определить порядковый номер самого старшего по возрасту человека. Если таких людей несколько, то должен быть найден номер:
а) первого из них;
б) последнего из них.
При определении возраста учитывать только год рождения (месяц и день не учитывать).
M5.12. Дан массив. Определить:
а) количество максимальных элементов в массиве;
б) количество минимальных элементов в массиве.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.13. В массиве хранится информация о росте 35 человек. Определить, сколько
человек имеют самый большой рост.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.14. В массиве хранится информация о количестве осадков, выпавших за каждый день октября. Определить количество дней, когда выпало самое большое число осадков.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.15. В массиве хранится информация о стоимости каждой из 60 книг. Определить количество самых дешевых книг.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.16. В массиве хранится информация о среднедневной температуре за каждый день июля. Определить количество самых прохладных дней в этом месяце.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.17. Дан массив. Найти номера всех элементов:
а) с минимальным значением;
б) с максимальным значением.
M5.18. Дан массив вещественных чисел. Выяснить:
а) верно ли, что максимальный элемент превышает минимальный не более чем на 25;
б) верно ли, что минимальный элемент меньше максимального более чем в 2 раза.
M5.19. Известен вес каждого человека из группы. Верно ли, что вес самого тяжелого из них превышает массу самого легкого более чем в 2 раза?
M5.20. Известна численность каждого из 40 классов школы. Верно ли, что в самом многочисленном классе учится на 10 учеников больше, чем в самом малочисленном?
M5.21. Какое число в массиве встретится раньше: максимальное или минимальное. Если таких чисел несколько, то должны быть учтены самые первые из них.
M5.22. Известен возраст группы людей в списке. Какой человек указан в списке раньше: самый старый или самый молодой? (Должны учитываться первые из людей одинакового возраста.)
M5.23. Известны очки (3, 1 или 0), полученные футбольной командой за ряд игр в порядке их проведения. Что было раньше: первый выигрыш (3 очка) или первый проигрыш (0 очков)?
M5.24. При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать «розу ветров» (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течение года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра за каждый день кодируется следующим образом: 1 — северный, 2 — южный, 3 — восточный, 4 — западный, 5 — северо-западный, 6 — северо-восточный, 7 — юго-западный, 8 — юго-восточный. Определить, как должен быть расположен жилой комплекс по отношению к комбинату.
M5.25. Дан массив. Определить:
а) максимальный элемент массива и элемент, являющийся максимальным без учета этого элемента;
б) минимальный элемент массива и элемент, являющийся минимальным без учета этого элемента;
в) номера максимального элемента массива и элемента, являющегося максимальным без учета этого элемента;
г) номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента.
Примечание.
Задачи (б) и (в) решить, не используя два прохода по массиву.
M5.26. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить скорости двух самых быстрых автомобилей.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.26. Определить стоимость двух самых дорогих видов товара.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.27. В массиве хранится информация о результатах 22 спортсменов, участвовавших в соревнованиях по бегу на 100 м. Определить результаты спортсменов, занявших первое и второе места.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.28. В массиве хранится информация о годе рождения каждого из 30 человек. Определить года рождения двух самых старших по возрасту людей. При определении возраста учитывать только год рождения (месяц и день не учитывать).
Примечание. Задачу решить, не используя два прохода по массиву.
M5.29. В массиве записано количество очков, набранных 20 командами-участницами чемпионата по футболу. Определить команды, занявшие первое и второе место.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.30. В массиве хранится информация о среднедневной температуре за каждый день июля. Определить даты двух самых теплых дней.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.31. В массиве хранится информация о количестве людей, живущих на каждом из 15 этажей дома (на первом этаже — в первом элементе массива, на втором — во втором и т. д.). Определить два этажа, на которых проживает меньше всего людей.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.32.  В массиве хранится информация о среднедневной температуре за каждый день февраля. Определить даты двух самых холодных дней.
Примечание. Задачу решить, не используя два прохода по массиву.
M5.33.  В массиве а записаны измеренные в сотых долях секунды результаты 23 спортсменов в беге на 100 м. Составить команду из четырех лучших бегунов для участия в эстафете 4 100 м, т. е. указать одну из четверок натуральных чисел i, j, k, m, для которой 1 i < j < k < m 4 и сумма a i a j a k a m имеет наименьшее значение.
M5.34. Изменить знак у максимального по модулю элемента массива. Минимальный элемент массива при этом не определять.
M5.35. Дан массив. Сравнить первый и второй элементы массива. Если второй элемент меньше первого, то поменять их местами. Затем то же самое сделать со вторым и третьим, …, предпоследним и последним элементами. Какое число окажется в результате в последнем элементе массива?


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
9 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

M5.7. В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставило несколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают и с наиболее низкими
оценками. Известны оценки, выставленные восемью судьями одному из участников соревнований. Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;




namespace Learning_Csharp
{
    class CreateArray
    {
        protected int[] array;


        public CreateArray(int[] array)
        {
            this.array = array;
        }


        private void Create()
        {
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write($"{i} element equals: ");
                int.TryParse(Console.ReadLine(), out array[i]);
            }


        }


        protected void Create_Array()
        {
            Create();
        }
    }


    class Solution : CreateArray
    {
        private List<int> grade { get; set; } = new List<int>();


        private List<int> MinGrades { get; set; } = new List<int>();


        private List<int> MaxGrades { get; set; } = new List<int>();
        public Solution(int[] array) : base(array)
        {
            Create_Array();
        }


        private void FindAllMinAndAllMax()
        {
            int min = array[0];


            int max = array[0];


            for (int i = 0; i < array.Length; i++)
            {
                if (min > array[i])
                    min = array[i];
                if (max < array[i])
                    max = array[i];
            }


            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == max)
                    MaxGrades.Add(array[i]);
                if (array[i] == min)
                    MinGrades.Add(array[i]);
            }
        }


        private void AnswerForMission()
        {
            FindAllMinAndAllMax();


            
            if (MinGrades.Count <= 1 && MaxGrades.Count <= 1)
            {
                MinAndMaxOnce();
            }


            
            if (MinGrades.Count > 1 && MaxGrades.Count <= 1)
            {
                MinGradesMoreAndMaxGradesNotMore();
            }


            if (MinGrades.Count <= 1 && MaxGrades.Count > 1)
            {
                MaxGradesMoreAndMinGradesNotMore();
            }


            if (MinGrades.Count > 1 && MaxGrades.Count > 1)
            {
                MaxAndMinMore();
            }


            // if min grades > 1 and max grades > 1
            void MaxAndMinMore()
            {
                grade = new List<int>();


                var minGrade = array[0];


                var maxGrade = array[0];


                for (int i = 0; i < array.Length; i++)
                {
                    if (minGrade > array[i])
                        minGrade = array[i];
                    if (maxGrade < array[i])
                        maxGrade = array[i];
                }


                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != maxGrade && array[i] != minGrade)
                        grade.Add(array[i]);
                }


                for (int i = 1; i < MaxGrades.Count; i++)
                    grade.Add(MaxGrades[i]);


                for (int i = 1; i < MinGrades.Count; i++)
                    grade.Add(MinGrades[i]);


                int middleArifmetic = grade.Sum() / grade.Count;


                Console.WriteLine("Оценка спортсмена: " + middleArifmetic);
            }


            // if min grades <= 1 and max grades > 1
            void MaxGradesMoreAndMinGradesNotMore()
            {
                grade = new List<int>();
                int minGrade = array[0];
                int maxGrade = array[0];


                for (int i = 0; i < array.Length; i++)
                {
                    if (minGrade > array[i])
                        minGrade = array[i];
                    if (maxGrade < array[i])
                        maxGrade = array[i];
                }


                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != maxGrade && array[i] != minGrade)
                        grade.Add(array[i]);
                }


                for (int i = 1; i < MaxGrades.Count; i++)
                    grade.Add(MaxGrades[i]);


                int middleArifmetic = grade.Sum() / grade.Count;


                Console.WriteLine("Оценка спортсмена: " + middleArifmetic);
            }


            // if min grades > 1 and max grades <= 1
            void MinGradesMoreAndMaxGradesNotMore()
            {
                grade = new List<int>();
                int minGrade = array[0];


                int maxGrade = array[0];
                for (int i = 0; i < array.Length; i++)
                {
                    if (minGrade > array[i])


                        minGrade = array[i];
                    if (maxGrade < array[i])
                        maxGrade = array[i];
                }


                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != minGrade && array[i] != maxGrade)
                        grade.Add(array[i]);
                }


                for (int i = 1; i < MinGrades.Count; i++)
                {
                    grade.Add(MinGrades[i]);
                }


                int middleArifmetic = grade.Sum() / grade.Count;


                Console.WriteLine("Оценка спортсмена: " + middleArifmetic);
            }


            // if max and min grade once
            void MinAndMaxOnce()
            {
                grade = new List<int>();
                int minGrade = array[0];


                int maxGrade = array[0];
                for (int i = 0; i < array.Length; i++)
                {
                    if (minGrade > array[i])


                        minGrade = array[i];
                    if (maxGrade < array[i])
                        maxGrade = array[i];
                }


                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != minGrade && array[i] != maxGrade)
                        grade.Add(array[i]);
                }




                int middleArifmetic = grade.Sum() / grade.Count;


                Console.WriteLine("Оценка спортсмена: " + middleArifmetic);
            }
        }


        public void Result()
        {
            AnswerForMission();
        }
    }


    class Result
    {
        public void Resultate(Solution userSol)
        {
            userSol.Result();
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            int numbersOfGrades = 8;


            int[] array = new int[numbersOfGrades];


            CreateArray userSolution = new Solution(array);


            if (userSolution is Solution solution)
            {
                var result = new Result();


                result.Resultate(solution);
            }
        }
    }
}

M5.2. В массиве хранится информация о стоимости каждой из 50 марок легковых автомобилей. Определить, сколько стоит самый дорогой автомобиль.

using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;


namespace Learning_Csharp
{


    class CreateArray
    {
        protected long[] array;


        private readonly long min;
        private readonly long max;


        private readonly Random rand = new Random();


        public CreateArray(long[] array, long min, long max)
        {
            this.array = array;
            this.min = min;
            this.max = max;
        }


        private void Create_Array()
        {
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rand.Next((int)min, (int)max);
            }
        }


        protected void ResultCreatedArray()
        {
            Create_Array();
        }
    }


    class Solution : CreateArray
    {
        private long MaxPrice { get; set; }
        public Solution(long[] array, long min, long max) : base(array,min, max)
        {
            ResultCreatedArray();
        }


        private void AnswerForMission()
        {
            MaxPrice = array[0];


            for (int i = 0; i < array.Length; i++)
            {
                if (MaxPrice < array[i])
                    MaxPrice = array[i];
            }


            Console.WriteLine("Max Price car equals: " + MaxPrice);
        }


        public void Result()
        {
            AnswerForMission();
        }
    }






    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Min");
            long.TryParse(Console.ReadLine(), out long min);




            Console.WriteLine("Max");
            long.TryParse(Console.ReadLine(), out long max);


            int NumbeOfCar = 50;


            long[] CarArray = new long[NumbeOfCar];


            Solution userSol = new Solution(CarArray, min, max);


            userSol.Result();
        }
    }
}

#5.34
public void GetE()
    {
      int max = 0;
      for (int i = 0; i < l; i++)
      {
        if (Math.Abs(arr[i]) > Math.Abs(max))
        {
          max = arr[i];
        }
      }
      max *= -1;
      Console.WriteLine();
      Console.WriteLine(«Максимальное значение с противоположным знаком = » + max);
    }

Последний раз редактировалось 1 год назад Евгений ем

M5.35. Дан массив. Сравнить первый и второй элементы массива. Если второй элемент меньше первого, то поменять их местами. Затем то же самое сделать со вторым и третьим, …, предпоследним и последним элементами. Какое число окажется в результате в последнем элементе массива?

public static void swap(ref int a, ref int b)
        {
            int tmp;
            tmp = a;
            a = b;
            b = tmp;
        }
        static void Main(string[] args)
        {
            int[] array = new int[10];
            Random rand = new Random();
            for(int i=0; i<array.Length; i++)
            {
                array[i] = rand.Next(20);
                Console.Write(array[i] + " ");
            }
            for(int i=0; i<array.Length-1; i++)
            {
                if(array[i] > array[i + 1])
                {
                  swap(ref array[i], ref array[i + 1]); 
                }   
            }
            Console.WriteLine();
            for (int i = 0; i < array.Length; i++)
            {
                
                Console.Write(array[i] + " ");
            }
        }

M5.12. Дан массив. Определить:
а) количество максимальных элементов в массиве;
int num = 1;
int number = 0;
Console.WriteLine(«Введите количество элементов массива»);
int m = int.Parse(Console.ReadLine());
int[] myarray = new int[m];
for (int i =0;i number)
{
number = myarray[i];
num = 1;
}
else if (myarray[i] == number) { num++; }

} Console.WriteLine(«Наибольший элемент массива равен: {0}», number);
Console.WriteLine(«Количество максимальных элементов массива равно: {0}», num);

M5.32. В массиве хранится информация о среднедневной температуре за каждый день февраля. Определить даты двух самых холодных дней.
Примечание. Задачу решить, не используя два прохода по массиву.

Random rnd = new Random();
int[] temperature = new int[28];
for (int i = 0; i < temperature.Length; i++)
   temperature[i] = rnd.Next(-25, 5);
int d1 = 0; 
int d2 = 1;
int min1 = temperature[0];
int min2 = temperature[1];
// упорядочим по t
if (min1 > min2)
{
   min1 = temperature[1];
   min2 = temperature[0];
   d1 = 1;
   d2 = 0;
}
for (int i = 2; i < temperature.Length; i++)
{
   if (temperature[i] <= min1)
   {
       min2 = min1; d2 = d1;
       min1 = temperature[i]; d1 = i;
   }
   else if (temperature[i] <= min2)
   {
      min2 = temperature[i];
      d2 = i;
   }
}
Console.WriteLine("Среднемесячная дневная температура:");
foreach (var item in temperature)
    Console.Write(item + "\t");
Console.WriteLine();
Console.WriteLine("Самые холодные дни в феврале:");
Console.WriteLine((d1 + 1) + " февраля - " + min1 + " градусов");
Console.WriteLine((d2 + 1) + " февраля - " + min2 + " градусов");
Console.ReadLine();
Важно: Вы можете поддержать проект и автора.

Задача М5.5 В массиве хранится информация о росте 25 человек. Определить, на сколько рост самого высокого человека превышает рост самого низкого.

int n = 25;
int[] heigth = new int[n];
Random rnd = new Random();
for (int i = 0; i < n; i++)
   heigth[i] = rnd.Next(150, 220);
for (int i = 0; i < n; i++)
{
    for (int j = n-1; j > i; j--)
       if (heigth[j - 1] > heigth[j])
       {
          int temp = heigth[j];
          heigth[j] = heigth[j-1];
          heigth[j-1] = temp;
       }
}    
Console.WriteLine("Самый высокий спортсмен: {0} см.", heigth[n - 1]);
Console.WriteLine("Самый низкий спортсмен: {0} см.", heigth[0]);
Console.WriteLine("Разница в росте составит: {0} см.", heigth[n - 1] - heigth[0]);
Важно: Вы можете поддержать проект и автора.
9
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x