Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 02:56   #1
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию C++ поиск макс и предмакс числа(без массива)

Найти максимальное число из введенных 10 чисел(не массив, его использовать нельзя) С этим заданием я справился.
Теперь второе задание. Надо модифицировать код первого задания так, чтобы он искал 2 максимальных числа, т.е. максимальное и пред максимальное, при этом нужно использовать подход из первого задания.
Вот код первого задания.

Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
    int counter;
    double number, largest;

    counter = 1; // инициализатор счетчика

    while( counter != 11 )
    {
        cout << "Введите " << counter << " число: ";
        cin >> number;
        if ( number > largest )
                largest = number;
        counter++;
    }
    cout << "Максимальное из 10 введенных: " << largest << endl;
    return 0;
}
Не вижу как вписать сюда код, который будет выводить пред максимальное число из 10 введенных.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 29.12.2010, 10:56   #2
Bearw08
Boom-boom)
Форумчанин
 
Аватар для Bearw08
 
Регистрация: 02.02.2009
Сообщений: 500
По умолчанию

как-то так:
Код:
#include <iostream>

using namespace std;

int main()
{
    int largest = 0, prelargest = -1;
    for(int i = 0; i < 10; i++)
    {
        int tmp;
        cout << "Input " << i + 1 << " number "<< endl;
        cin >> tmp;
        if (tmp > largest)
        {
			  prelargest = largest;
			  largest = tmp;
        }
	if (tmp > prelargest && tmp < largest) prelargest = tmp;
    }

    cout << "Largest = " << largest << endl
           << "PreLargest = " << prelargest << endl;

    return 0;
}
¡ʁɔvʎнdǝʚǝdǝu dиw
Bearw08 вне форума Ответить с цитированием
Старый 29.12.2010, 11:08   #3
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Отсортируй массив по возрастанию и 2 последних элемента и будут этими числами.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 29.12.2010, 11:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Отсортируй массив по возрастанию и 2 последних элемента и будут этими числами.
Нельзя:
Цитата:
при этом нужно использовать подход из первого задания.
Это вопрос на засыпку от преподавателей, чтоб узнать сам ли делал учень работу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 13:00   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нельзя:
Это вопрос на засыпку от преподавателей, чтоб узнать сам ли делал учень работу.
Я не учусь ни в каком учреждение, я самоучка и задания делаю по книге по мере поступления информации. Там было такое задание, массивы еще не проходились, поэтому нада сделать без них.

Bearw08 спс, проверю попозже, но на вскидку мне кажется, что prelargest в этом коде не захватит первую велечину, если она будет предмаксимальной. Как то так.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 29.12.2010 в 13:05.
Donatello вне форума Ответить с цитированием
Старый 29.12.2010, 13:05   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Donatello
В таком случае прими на будущее совет TranceSmile, ибо он не лишен смысла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 13:09   #7
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Stilet знаю, но хочется найти решение именно этого задания. Хотя бы ради того что бы развить немного логику Тут в принципе только на ней задача и решается.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 29.12.2010, 13:22   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я себе это так представляю:
Код:
for(int i = 0; i < 10; i++)
    {
        int tmp;
        cout << "Input " << i + 1 << " number "<< endl;
        cin >> tmp;
        if (tmp > largest){
                          prelargest = largest;
			  largest = tmp;
        } else {
            if (tmp > prelargest ){
			  prelargest = tmp;
            }
        }
	
    }
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 13:23   #9
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

спасибо, как доберусь до компа с компилятором проверю как это работает
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 29.12.2010, 17:15   #10
Bearw08
Boom-boom)
Форумчанин
 
Аватар для Bearw08
 
Регистрация: 02.02.2009
Сообщений: 500
По умолчанию

Цитата:
Сообщение от Donatello Посмотреть сообщение
Я не учусь ни в каком учреждение, я самоучка и задания делаю по книге по мере поступления информации. Там было такое задание, массивы еще не проходились, поэтому нада сделать без них.

Bearw08 спс, проверю попозже, но на вскидку мне кажется, что prelargest в этом коде не захватит первую велечину, если она будет предмаксимальной. Как то так.
Цитата:
Input 1 number
2010
Input 2 number
2011
Input 3 number
2009
Input 4 number
2007
Input 5 number
2008
Largest = 2011
PreLargest = 2010
Ты про такой случай?
¡ʁɔvʎнdǝʚǝdǝu dиw
Bearw08 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поставить мин. элемент вначало массива, а макс.-в конец dima-intro Помощь студентам 7 19.12.2010 18:23
нахождение мин и макс числа Данил1986 Паскаль, Turbo Pascal, PascalABC.NET 3 07.06.2010 05:46
Pascal. поиск макс. элемента массива Сергей К. Помощь студентам 12 10.12.2009 21:14
Поиск Макс элемента kostya2 Общие вопросы C/C++ 5 26.04.2009 16:49
работа с массивами в С++ (нахождение мин и макс числа) Lorden Помощь студентам 10 29.01.2009 21:42