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

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

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

Показать сообщение отдельно
B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
11.02.2012, 00:04
Здесь по-моему (я сам не так давно начал изучать С++) нужно более внимательно отнестись к сравнению >= && <=. В случае когда числа одинаковые, это = дублируется в нескольких 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 сработала, то остальные, находящиеся ниже, не работают.
Надеюсь, доходчиво объяснил, как сумел...
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru