![]() |
|
Модераторы: bsa |
![]()
|
|
| Syltan |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Написал простую прогу с использованием шаблонов, вроде всё правильно, но дело в том,что условие
Я специально поставил значения в х1 = 8, х2 = 8,чтоб вывелся результат только один,
А выдаёт 2 результата.
Это сообщение отредактировал(а) Syltan - 18.9.2009, 14:20 |
||||||||
|
|||||||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
здесь ошибка. сам догадаешься в чём?
|
|||
|
||||
| Syltan |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Это место работате нормально, и с else,та же история.
Даже если поставить будет тот же самый вывод:
Странно,но это условие не работает:
Это сообщение отредактировал(а) Syltan - 18.9.2009, 14:24 |
||||
|
|||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
теперь тут ошибка. сам догадаешься в чём? если a больше b, то выход со значением a, иначе выход со значением b. И если a равна b - выход со значением ноль. чувствуешь нестыковку? Это сообщение отредактировал(а) Cheloveck - 18.9.2009, 14:32 -------------------- ![]() |
|||
|
||||
| Syltan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Хотите сказать, что вот так будет правильно:
А else в таких случаях не используют? Это сообщение отредактировал(а) Syltan - 18.9.2009, 14:32 |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
-------------------- ![]() |
|||
|
||||
| Syltan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Зачем лишний else,тогда лучше вот так:
Но дело в том,что я хочу чтоб не выдавало результат = 0, чтоб,если одно число равно другому, тогда ничего на экран не выдавало. Это сообщение отредактировал(а) Syltan - 18.9.2009, 14:37 |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Это сообщение отредактировал(а) Cheloveck - 18.9.2009, 14:38 -------------------- ![]() |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Cheloveck, как-то ты код извращённо переписал.
я думаю, что сначала в if'ах должны быть перечислены стандартный/правильный поток выполнения программы а уже после них - обработка ошибочных вариантов.
Это сообщение отредактировал(а) zim22 - 18.9.2009, 14:41 |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
Он не лишний. Потом поймёшь. -------------------- ![]() |
|||
|
||||
| Syltan |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
И даже если написать вот так:
Результат программы будет таков:
А нужно вот такой чтоб был:
Это сообщение отредактировал(а) Syltan - 18.9.2009, 14:45 |
||||||
|
|||||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
zim22, если говорить о правильном подходе, то это должно быть вообще так
Добавлено через 1 минуту и 35 секунд ну, или T вместо int -------------------- ![]() |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
ок. где ты вычитал об этом "правильном" подходе? в чём его преимущества перед моим? (свой я вычитал в Макконнеле "Совершенный код") недостатки "правильного" подхода вижу такие: 1) создание ненужной переменной result, без которой можно обойтись. 2) тип у result кстати int. хотя это шаблонная функция и передавать ей можно всё-что угодно. хоть тип Booblik 3) инициализация переменной result нулём. а что если тип у переменной не int и конструктор преобразования не определён? 4) сравнение идёт по оператору БОЛЬШЕ, а не МЕНЬШЕ. который с меньшей степенью вероятности определён в классах, чем МЕНЬШЕ |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 5 Всего: 32 |
-------------------- ![]() |
|||
|
||||
| Syltan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Вы меня не поняли,если числа одинаковые тогда,вообще ничего на экран не долно выводится, а вывестись должен только второй вызов, где числа не одинаковые.
Это сообщение отредактировал(а) Syltan - 18.9.2009, 15:00 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |