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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
#1

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

01.12.2013, 22:02. Просмотров 365. Ответов 10
Метки нет (Все метки)

Привет все Есть код, на нахождение максимального числа. Как его переделать что бы выводилось два максимальных числа ( каждое число должно вводиться один раз ). Заранее большое спасибо
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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2013, 22:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Два максимальных числа (C++):

Найти два максимальных числа - C++
Задача впринципе легкая, но меня что-то зациклило по полной. Найти два максимальных числа из 10 введенных. БЕЗ массива. Одинаковое число...

Найти два максимальных числа из потока - C++
Здравствуйте, нужна ваша помощь. Нужно найти два максимальных числа из одного файла и записать их в другой файл. Сделала так, а опыта и...

Функция, находящая два максимальных числа в массиве и возвращающая структуру с этими числами - C++
Напишите функцию, находящую два максимальных числа в массиве и возвращающую структуру с этими числами и подробно расписать код.

Последовательность целых чисел. Найти два минимальных / два максимальных элемента - C++
Дана последовательность целых чисел a1,a2,...,an, где n=&gt; 3. Найти: а) два максимальных элемента последовательности; б) два минимальных...

Два максимальных значения из 10 целых чисел - C++
Найдите два наибольших значения из 10 чисел. .

найти два максимальных значения в массиве - C++
Собственно, не получается реализовать нахождение второго максимального значения: // Найдти 2 максимальных значения без сортировки массива...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
01.12.2013, 22:08 #2
простоВадим, я бы в массив записал все числа, а потом их отсортировал по убыванию и вывел два первых числа) вот и весь алгоритм)
1
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
01.12.2013, 22:11  [ТС] #3
Спасибо Но в книге надо это сделать без массива ( вообщем книга старая и там так тупо написано )
0
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;
}
Ну раз без массива, то вот так как-то
0
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
01.12.2013, 22:26  [ТС] #5
Извините но это не работает

Добавлено через 1 минуту
Мне надо ввести 10 чисел и вывести 2 наибольших
0
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 чисел. Все работает
0
Liden
19 / 19 / 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;
}
0
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
01.12.2013, 22:59 #8
С моим решением все хорошо, просто я решил для случая с n чисел, а автор затребовал на 10.
1
простоВадим
2 / 2 / 0
Регистрация: 04.08.2013
Сообщений: 69
02.12.2013, 11:01  [ТС] #9
Спасибо всем заработало. Я не понял только зачем max1 и max2 = -1000 ???

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

Найти два максимальных элемента из интервала - C++
Даны числа a, b (0 &lt; a &lt; b) и набор из десяти элементов. Найти минимальный1|максимальный2 из элементов, содержащихся в интервале (a, b)....

Определить два максимальных элемента массива - C++
Дан массив из n элементов, необходимо определить максимальный элемент массива и элемент, являющийся максимальным без учёта этого элемента. ...

Сравните два числа A и B. Задан два целых неотрицательных числа A и B - C++
Сравните два числа A и B. Задан два целых неотрицательных числа A и B (A, B &lt;= 1010000) каждое в своей строке. Найти разность двух...

В одномерном массиве найти два максимальных элемента и удалить все элементы между ними - C++
Дана задача : В одномерном массиве найти два максимальных элемента и удалить все элементы между ними. Массив задается случайным образом. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.12.2013, 12:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru