Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/55: Рейтинг темы: голосов - 55, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 21
1

Найти три максимальных значения среди элементов массива из n вещественных чисел

01.03.2015, 16:47. Показов 10051. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет,прошу вашей помощи!
Найти три максимальных значения max1 >= max2 >= max3 среди элементов массива из n вещественных чисел.(задача с использованием массива)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 16:47
Ответы с готовыми решениями:

В массиве вещественных чисел найти среди элементов, не принадлежащих интервалу [a,b], максимальный элемент
Всем привет. В массиве Y(N) вещественных чисел нужно найти среди элементов, не принадлежащих...

Дан массив целых чисел. Найти количество различных чисел среди элементов этого массива
Уважаемые форумчане, только начал разбираться в C# Пожалуйста, помогите с написанием кода для...

Найти сумму элементов массива вещественных чисел, имеющих нечетные номера
Найти сумму элементов массива вещественных чисел, имеющих нечетные номера. Размерность массива –...

Найти произведение и количество положительных, отрицательных элементов массива вещественных чисел
Здравствуйте, мне нужна ваша помощь с заданием, который я не могу составить. Вот текст. "Дан...

6
97 / 90 / 61
Регистрация: 20.10.2013
Сообщений: 300
01.03.2015, 19:37 2
Лучший ответ Сообщение было отмечено kna как решение

Решение

Три максимальных значения найдено, а вот условие не ясно мне, но идея должна быть понятна!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Console.WriteLine("Введите длину массива");
            int l = Convert.ToInt32(Console.ReadLine());
            int[] n = new int[l];
            Random r = new Random();
            for(int i=0;i<n.Length;i++)
            {
                n[i] = r.Next(-10, 10);
                Console.WriteLine(n[i]);
            }
                  int max=n[0];                  
                  int imax = 0;
                  for(int i=0;i<n.Length;i++)
                  {
                      if(n[i]>max)
                      {                
                          max = n[i];
                          imax = i;
                          break;
                      }
                  }
                    int max1=max;
                    int imax1 = imax+1;
                      for(int i=imax;i<n.Length;i++)
                      {
                         if(n[i]>max)
                         {
                             max1 = n[i];
                             imax1 = i;
                             break;
                         }
                      } 
                      int max2 = max1;
                      int imax2 = imax1 + 1;
                      for (int i = imax2; i < n.Length; i++)
                      {
                          if (n[i] > max)
                          {
                              max2 = n[i];
                              break;
                          }
                      }
                Console.WriteLine("Максимальные элементы:");
            Console.WriteLine("1макс {0}",max);
            Console.WriteLine("2макс {0}",max1);
            Console.WriteLine("3макс {0}",max2);
1
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
01.03.2015, 19:45 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Linq;
 
    class Class5
    {
        static void Main()
        {
            double[] numbers = { 0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };
            foreach (var number in numbers.OrderByDescending(n => n).Take(3))
            {
                Console.Write(number + " ");
            }
        }
    }
1
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
01.03.2015, 22:54 4
magnusmax,
Тут все и одним циклом решается, притом у вас не правильно определяются максимумы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
            int[] arr = { 100, 2, 3, 4, 5, 5, 6, 6, 369, 115 };         
            
            int max1 = Math.Max(arr[0], Math.Max(arr[1], arr[2])),
                max3 = Math.Min(arr[0], Math.Min(arr[1], arr[2])),
                max2 = arr[0] + arr[1] + arr[2] - max1 - max3;
            
            for (int i = 3; i < arr.Length; i++) 
            {
                if (max1 < arr[i]) 
                {
                    max3 = max2;
                    max2 = max1;
                    max1 = arr[i];
                }
                else if (max2 < arr[i])
                {
                    max3 = max2;
                    max2 = arr[i];
                }
                else if (max3 < arr[i])
                {
                    max3 = arr[i];
                }               
            }
            
            Console.WriteLine(max1);
            Console.WriteLine(max2);
            Console.WriteLine(max3);
1
97 / 90 / 61
Регистрация: 20.10.2013
Сообщений: 300
01.03.2015, 23:11 5
XRoy, да, странно считает.Спасибо.
0
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
01.03.2015, 23:17 6
осталось только сделать с вещественными числами и задача решена
0
870 / 720 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
01.03.2015, 23:44 7
_exp10der_,
Да, выпустил это как-то из виду
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
        public static void Main(string[] args)
        {
            const double eps = 1E-15;
            double[] arr = { 100, 369, 36009, 369, 1080, 3100, 2000 };
 
            double max1 = Math.Max(arr[0], Math.Max(arr[1], arr[2])),
                max3 = Math.Min(arr[0], Math.Min(arr[1], arr[2])),
                max2 = arr[0] + arr[1] + arr[2] - max1 - max3;
 
            for (int i = 3; i < arr.Length; i++)
            {
                if (max1 - arr[i] < eps)
                {
                    max3 = max2;
                    max2 = max1;
                    max1 = arr[i];
                }
                else if (max2 - arr[i] < eps)
                {
                    max3 = max2;
                    max2 = arr[i];
                }
                else if (max3 - arr[i] < eps)
                {
                    max3 = arr[i];
                }
            }
 
            Console.WriteLine(max1);
            Console.WriteLine(max2);
            Console.WriteLine(max3);            
 
        }
0
01.03.2015, 23:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2015, 23:44
Помогаю со студенческими работами здесь

Найти три максимальных и три минимальных значения 10 случайных чисел
помогите написать программку.

Найти минимальный элемент среди максимальных элементов строк двумерного массива целых чисел
Люди добрые помогите решить задачу. Найти минимальный элемент среди максимальных элементов строк...

Найти значения и индексы элементов массива, наименьших среди чётных чисел и наибольших среди нечётных
Дан массив из N-целых чисел, где N&lt;=16 Массив должен задаваться в секции глобальных...

Даны три массива чисел. Требуется вычислить среднее арифметическое их максимальных элементов
Ребята я недавно начал изучать ассемблер и мне нужна помощь. В учебнике я нашел данный код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru