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

Страуструп. Упражнение. Ввод 3 чисел и последующий их вывод в порядке возрастания. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отсортировать по возрастанию числа и вывести те, которые меньше a http://www.cyberforum.ru/cpp-beginners/thread444168.html
Задание такое : дано некоторое число n , затем вводится n чисел , после этого вводится два числа a и b. Нужно : среди этих n чисел отсортировать по возрастанию и вывести те , которые меньше a ; отсортировать по убыванию и вывести те , которые больше b. Вот мой код. Он работает(все делал через массивы) . Ошибок и предупреждений нет . С сортировкой тоже проблем нет . Проблема с нахождением чисел...
C++ 866=> Windows-кодировка... Ищу функцию для перевода из DOS кодировки 866 в Windows-кодировку на Си... Может есть у кого?? http://www.cyberforum.ru/cpp-beginners/thread444153.html
Число дней недели между датами C++
Добрый вечер. Есть две даты:начальная и конечная. И есть номер дня недели:1-воскрксенье, 2-понедельник...,7-суббота. Помогите написать функцию, которая бы считала: число конкретного номера дня недели между двумя датами. Добавлено через 40 минут Очень нужно. Пишу на с++. Добавлено через 15 часов 57 минут Может кто-нибудь писал такую функцию?
C++ целочисленной арифметике
Определить, сколько цифр в каждом числе n из заданной последовательности чисел. Если количество цифр чётное, то получить из него число такое, чтобы цифры в нём следовали в обратном порядке.
C++ Генерация массива всех перестановок из n элементов. http://www.cyberforum.ru/cpp-beginners/thread444081.html
Нашел по этой теме здесь на форумах такой код: #include <iostream.h> int X; int N; void Swap(int a,int b) { int t=X; X=X; X=t;
C++ перевессти байты в слово привет)))есть массив байтов(шестнадцатеричный) 53 48 4f 52 54 и т.д., есть признак того, что этому массиву соответсвует либо int, либо float, либо вообще целое слово(char ), либо insigned int. нужно их перевести в слово,int ,float и т.е. какое слово соответсвует этому набору байтов, кодировка ANSI, какая функция все это переводит...скажите плиз))))на языке С/С++. Добавлено через 1 минуту я... подробнее

Показать сообщение отдельно
B.Krols
 Аватар для B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
11.02.2012, 00:04     Страуструп. Упражнение. Ввод 3 чисел и последующий их вывод в порядке возрастания.
Здесь по-моему (я сам не так давно начал изучать С++) нужно более внимательно отнестись к сравнению >= && <=. В случае когда числа одинаковые, это = дублируется в нескольких if, что приводит к ошибкам.
Также советую начать изучать с какой-нибудь более простой книги.
Я, например, читаю Г. Шилдт. C++ Базовый курс. Мне очень нравится, но дело вкуса...

Добавлено через 20 минут
Добрый вечер.
Вот моя аналогичная версия программы.
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
int main()
{
    setlocale(0, "");
 
    int v1, v2, v3, max, min, ave;
    cout << "Введите чиселки: "; //ввод чисел
    cin >> v1 >> v2 >> v3;
        
    if (v1 >= v2 && v1 >= v3) max = v1; //максимальное
    else if (v3 >= v1 && v3 >= v2) max = v3;
    else max = v2;
 
    if (v1 <= v2 && v1 <= v3) min = v1; //минимальное
    else if (v3 <= v1 && v3 <= v2) min = v3;
    else min = v2;
    
    if ((max == v1 && min == v2) || (min == v1 && max == v2)) ave = v3; //среднее
    else if ((max == v1 && min == v3) || (min == v1 && max == v3)) ave = v2;
    else ave = v1;
 
    cout << min << ' ' << ave << ' ' << max;
    _getch();
    return 0;
}
Отличия лишь в том (думаю это и является причиной ошибок у Вас), что в Вашей программе выполняются все операторы if последовательно и как раз всплывает вариант, когда числа равны.
В моей версии программы если одна из веток if сработала, то остальные, находящиеся ниже, не работают.
Надеюсь, доходчиво объяснил, как сумел...
 
Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru