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

Найти наибольшее и наименьшее трехзначное число из последовательности числел - C++

Восстановить пароль Регистрация
 
G.a.n.g.s.t.e.r
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 94
16.03.2014, 12:26     Найти наибольшее и наименьшее трехзначное число из последовательности числел #1
Здравствуйте.
Программа сначала должна вывести наименьшее трехзначное значение а потом наибольшее трехзначное число.

--------------------------------------------------------
Стандартный поток ввода Стандартный поток вывода
130 | 103 310 |
923 | 239 932 |
003 | 300 300 |
--------------------------------------------------------

Хотел все это дело решить с помощью сортировок. Но сортировка отсортирует мне допустим 130 как 310(но это же не наименьшее число)... Так, что сортировка не поможет. Прочекал разные алгоритмы ничего подходящего не нашел. Может, что есть в STL если запулить все данные в вектор допустим?
Помогите чем сможете.

Добавлено через 15 часов 24 минуты
Кому будет интересно я решил так
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
int main()
{
    vector<int> iArray;                         // Массивы чисел
    vector<int>::iterator it;                           // Итератор для управления этим массивом
    int iChislo = 0;                                // Переменная для хранения числа заносимого в вектор
 
    for (int i = 0; i < 3; i++)                     // Заполняем массив (Извините, что так грубо написла 3 просто так по условию задания)
    {
        cout << "Enter the number # " << i + 1 << endl;
        cin >> iChislo;
        iArray.push_back(iChislo);
    }
 
    cout << endl;
 
    sort(iArray.begin(), iArray.end());                     // Сортировка этого массива по возростанию
 
    if (iArray[0] == 0)                                 // Нам же нужно наименьшее трехзначное число вот я чекаю что бы ноль не был первым
    {
        swap(iArray[0], iArray[1]);                         
        if (iArray[0] == 0 && iArray[1] == 0)               // На всякий случай если допустим будет введено 003 (не забываем наименьшее трехзначное)
            swap(iArray[0], iArray[2]);
    }
 
    for (it = iArray.begin(); it != iArray.end(); ++it)     // Выводим наименьшее число которое можно сложить з последовательности этих цифр
        cout << *it;
    cout << " ";
 
    sort(iArray.rbegin(), iArray.rend());               // Сортируем по убыванию (тут ничего сложного нет)
 
    for (it = iArray.begin(); it != iArray.end(); ++it)     // Выводим наибольшее число которое можно сложить
        cout << *it;
 
    cin.get();
    cin.get();
    return 0;
}
Спасибо за помощь фоумчане.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 12:26     Найти наибольшее и наименьшее трехзначное число из последовательности числел
Посмотрите здесь:

C++ Найти наибольшее и наименьшее значение
Найти наименьшее натуральное число, которое отсутствует в последовательности и определить его делители. C++
C++ Наибольшее и наименьшее число в массиве.
Найти наименьшее натуральное число отсутствующее в последовательности C++
Дано трехзначное число.Найти число,полученное при перестановке первой и второй цифт заданного числа. C++
C++ Найти наименьшее число среди четных элементов последовательности
Вывести на экран наименьшее и наибольшее число из набора чисел C++
Пользователь вводит 3 числа с клавиатуры. Вывести на экран наименьшее и наибольшее число C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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