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

Два максимальных числа - C++

Восстановить пароль Регистрация
 
простоВадим
 Аватар для простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
01.12.2013, 22:02     Два максимальных числа #1
Привет все Есть код, на нахождение максимального числа. Как его переделать что бы выводилось два максимальных числа ( каждое число должно вводиться один раз ). Заранее большое спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    int a = 0;       // введенное число 
    int max = 0;     // первой макс.число
    int counter = 0; // счетчик
 
    while( counter < 10 )
    {
        cout << "Enter number: ";
            
        cin >> a;
            
        if( a > max ) max = a;
                
        counter++;
    }
 
    cout << "Max number = " << max << endl;
    
    system( "pause" );
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
01.12.2013, 22:08     Два максимальных числа #2
простоВадим, я бы в массив записал все числа, а потом их отсортировал по убыванию и вывел два первых числа) вот и весь алгоритм)
простоВадим
 Аватар для простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
01.12.2013, 22:11  [ТС]     Два максимальных числа #3
Спасибо Но в книге надо это сделать без массива ( вообщем книга старая и там так тупо написано )
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
01.12.2013, 22:19     Два максимальных числа #4
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
#include <iostream>
using namespace std;
int main()
{
    int n,t,max1,max2;
    cin>>n;
    max1=-1000;
    max2=-1000;
    for (int i=1;i<=n;i++)
    {
        cin>>t;
        if (t>max2) 
        {
            if (t>max1)
            {
                max2=max1;
                max1=t;
            }
            else
            {
                max2=t;
            }
        }
    }
    cout<<max1<<" "<<max2<<endl;
}
Ну раз без массива, то вот так как-то
простоВадим
 Аватар для простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
01.12.2013, 22:26  [ТС]     Два максимальных числа #5
Извините но это не работает

Добавлено через 1 минуту
Мне надо ввести 10 чисел и вывести 2 наибольших
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
01.12.2013, 22:38     Два максимальных числа #6
У меня из n чисел выводит 2 наибольших. Ты хоть вдумывайся

Добавлено через 2 минуты
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
#include <iostream>
using namespace std;
int main()
{
    int t,max1,max2;
    max1=-1000;
    max2=-1000;
    for (int i=1;i<=10;i++)
    {
        cin>>t;
        if (t>max2) 
        {
            if (t>max1)
            {
                max2=max1;
                max1=t;
            }
            else
            {
                max2=t;
            }
        }
    }
    cout<<max1<<" "<<max2<<endl;
}
Вот тебе из 10 чисел. Все работает
Liden
17 / 17 / 2
Регистрация: 19.11.2013
Сообщений: 83
01.12.2013, 22:46     Два максимальных числа #7
простоВадим, а так:
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    int max1, max2, a;
    cout<<"Введите первое число: ";
    cin>>a;
    max1=max2=a;
    for(int i=1;i<10;i++){
 
        cout<<"Введите следующее число: ";
        cin>>a;
        if (a>max1){
            max2=max1;
            max1=a;
        }
        else if ((a<max1)&&(a>max2||max2==max1))
                    max2=a;
    }
 
    cout << "max1: " << max1 << endl
         << "max2: " << max2 << endl;
 
    system("PAUSE");
    return 0;
}
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
01.12.2013, 22:59     Два максимальных числа #8
С моим решением все хорошо, просто я решил для случая с n чисел, а автор затребовал на 10.
простоВадим
 Аватар для простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
02.12.2013, 11:01  [ТС]     Два максимальных числа #9
Спасибо всем заработало. Я не понял только зачем max1 и max2 = -1000 ???

Добавлено через 2 часа 8 минут
Разобрался Вложенные циклы это круто а max1 и max2 могут иметь любое одинаковое значение обязательно с минусом
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 12:28     Два максимальных числа #10
max1 и max2 должны иметь заведомо меньшее значение, чем числа, которые вы можете ввести
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 12:30     Два максимальных числа
Еще ссылки по теме:

C++ В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Последовательность целых чисел. Найти два минимальных / два максимальных элемента C++
C++ Найти два максимальных числа из потока

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

Или воспользуйтесь поиском по форуму:
простоВадим
 Аватар для простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
02.12.2013, 12:30  [ТС]     Два максимальных числа #11
Да я понял спасибо
Yandex
Объявления
02.12.2013, 12:30     Два максимальных числа
Ответ Создать тему
Опции темы

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