Форум программистов, компьютерный форум CyberForum.ru

Найти минимальный элемент среди двух максимальных - C++

Восстановить пароль Регистрация
 
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
10.05.2013, 12:03     Найти минимальный элемент среди двух максимальных #1
Всем привет, вот такая вот проблемка возникла, нужен мне минимальный элемент среди двух максимальных
код вот так вот сделал:
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
46
int main ()
{
    int m[10] = {4, 7, 45, 3, 6, 5, 43, 76, 46, 65};
    int max_1 =  0, max_2 = 0, min=0;
    int calc=0,calc1=0;
    double temp;
    for(int i = 0; i < 10; i++)
    {
        if(m[i] > max_1)
        {
            max_1 = m[i];
            calc++;
        }
        else if(m[i] != max_1)
        {
            if(m[i] > max_2)
            {
                max_2 = m[i];
                calc1++;
            }
        }
    }
 
    temp=max_1;
    if(calc>calc1)
    {
        for(int i=calc1;i<calc;i++)
        {
            if(temp>m[i])
            {
                temp=m[i];
            }
        }
    }
    else
    for(int i=calc;i<calc1;i++)
    {
        if(temp>m[i])
        {
            temp=m[i];
        }
    }
    min=temp;
    std::cout << max_1 << ' ' << max_2<< ' '<<min<<' '<<std::endl;
    return 0;
}
должно выдавать число 46, а получается, что 6 выкидывает, в чем ошибка?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 12:03     Найти минимальный элемент среди двух максимальных
Посмотрите здесь:

Найти минимальный элемент среди максимальных элементов строк матрицы C++
C++ Найти минимальный элемент из максимальных элементов строк двухмерного массива целых чисел
C++ Минимальный элемент среди максимальных
C++ Найти минимальный элемент среди m элементов массива А
C++ Найти минимальный элемент среди положительных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
10.05.2013, 12:24     Найти минимальный элемент среди двух максимальных #2
Цитата Сообщение от ritmix10 Посмотреть сообщение
нужен мне минимальный элемент среди двух максимальных
C++
1
min = std::min(max_1, max_2);
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.05.2013, 12:28     Найти минимальный элемент среди двух максимальных #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Насколько я понял, нужно найти два самых больших элемента последовательности и вывести наименьший элемент, заключенный между ними.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int arr[] = {4, 7, 45, 3, 6, 5, 43, 76, 46, 65};
    int *max_1 = max_element( begin(arr), end(arr) );
    int *max_2 = begin(arr);
    for (int *i = begin(arr) + 1; i != end(arr); i++)
        if (*i > *max_2 && *i != *max_1)
            max_2 = i;
    if (max_1 > max_2)
        swap(max_1, max_2);
    cout << "Min element between " << *max_1 << " and " << *max_2 << " is " << *min_element( max_1 + 1, max_2 );
 
    return 0;
}
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
10.05.2013, 12:29  [ТС]     Найти минимальный элемент среди двух максимальных #4
Спасбо, уже нашел ошибку)
Yandex
Объявления
10.05.2013, 12:29     Найти минимальный элемент среди двух максимальных
Ответ Создать тему
Опции темы

Текущее время: 08:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru