![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
MegaUser |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
начал недавно изучать С++ и столкнулся с такой непонятностью, помогите разобраться:
условие такое нужно чтобы одна из трех переменных равнялась такомуто числу, если другие три переменные равняются еще определенным трем переменным...(надеюсь понятно), вот что я написал :
причем перед этим кодом у меня переменные x y z даже близко неравны a[0],a[1]или a[2], по идее результат должен равняться 0 но в итоге результат у меня получается 50.... почему? может быть есть более лучший способ реализовать мое условие?, или проконсультируйте чайника что не так делаю.. |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
В С++ оператор сравнения это == а не =.
Т.е. надо писать if (x == a[0]) и т.п. Это сообщение отредактировал(а) Дрон - 20.12.2006, 18:40 -------------------- Да. Именно так. |
|||
|
||||
CaptainFlint |
|
|||
![]() Искатель сокровищ ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 26.2.2003 Где: Москва Репутация: нет Всего: 23 |
MegaUser
Сравнение в плюсах - это ==, а одиночное = - это присваивание (даже внутри if'а). -------------------- Почему же, ё-моё, ты нигде не пишешь "ё"? -------------------- Для тех, кто не знает: CaptainFlint - это бывший Константин. ;) |
|||
|
||||
MegaUser |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
от млин точно, спасибо))) , читал же даже про это, получилось,
тада еще вопрос: к такому коду я пришел за пол дня, сначала пробовал записать все в одну строчку, щас уже непомню как у меня это выглядело, но ничего неполучалось, поскажите как оформить это одной строкой(через && или ||). |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
А можешь подробнее объяснить задачу, а то
не слишком понятно, и не очень соотносится с тем, что написано в коде. -------------------- Да. Именно так. |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
MegaUser,
По другому одной строкой не получится... Это сообщение отредактировал(а) UniBomb - 20.12.2006, 18:59 |
|||
|
||||
MegaUser |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
To Дрон
я тока как неделю сел за с++ (типа хобби себе придумал), почитаю книжки прикину в голове задачу(так как книжные неочень), и пытаюсь ее реализовать, вот и сегодня почитав , поставил себе задачу написать чтото типа джек пота(казиношная игра) , есть три случайно выпадающие цифры, и соответственно нужно написать алгоритм расчета выигрыша , т.е если я набрал 123, а выпало 456 выигрыш =0 , а если 156 выпало то скажем выигрыш равен 250.... To UniBomb а почему нельзя через "и" или "или" реализовать? |
|||
|
||||
Partizan |
|
||||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
А так слабо?
-------------------- СУВ, Partizan. |
||||
|
|||||
bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
совет: при сравнении с константой, ставь константу слева от ==. тогда если ошибешься, и оставишь "=", при компиляции выйдет ошибка.
-------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
Во! Совсем другое дело. Сейчас подумаю... ![]()
Вуаля ![]() Хитрость в том, что в Си можно считать, что истина (true) равна 1, а ложь (false) -- 0. Ну и наоборот, если понадобится ![]() Это сообщение отредактировал(а) Дрон - 20.12.2006, 19:15 -------------------- Да. Именно так. |
|||
|
||||
UniBomb |
|
||||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
MegaUser,
Partizan, Я не понял смысл сказанного:
Но судя по листингу - если какая то из переменных равна какому то числу, то другой переменной с той же буквой присвоить значение 50. Здесь же:
Присваивается значение всем переменным, но только в случае всеобщего равенства (x == a[0] && y == a[1] && z == a[2]) Оба куска кода которые вы написали будут выполнять разные действия. |
||||
|
|||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
мне рассказывали, что единственное что могут обещать в Си - false == 0 a то, что true == 1 я не слышал. ( не факт что это не правда ) может быть один компилятор и реализует true через 1. а другой может и не реализует. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Истина все, что не 0
|
|||
|
||||
Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
Ок, не буду говорить за Си, но в С++ это должно быть определено однозначно: http://msdn2.microsoft.com/en-us/library/t...80a(VS.80).aspx
То же самое упоминается здесь: http://www.kuzbass.ru:8086/docs/isocpp/conv.html в пункте 4.5.4. Это сообщение отредактировал(а) Дрон - 20.12.2006, 22:29 -------------------- Да. Именно так. |
||||
|
|||||
MegaUser |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
вот про "истина (true) равна 1, а ложь (false) -- 0" - ценная информация, ее и буду использовать.... спасибо ![]() а, опять столкнулся с непонятками, вот еще вопрос: почему
у меня mnoj равна всегда 0 почему?, вроде все верно сделал...... Это сообщение отредактировал(а) MegaUser - 21.12.2006, 12:16 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |