Если я ввожу "fine" или "bad" он пишет оба условия (и fine, и bad). с остальным вроде разобралась. #include ; using namespace std; int main() { string name; cout < < "what is your name? "; cin > > name; cout < < "hello, " < < name < < endl; cout < < "how are you? "; string good; string fine; string bad; string mood; cin > > mood; if (mood == "good"||"good") { cout < < "okay, so do you mind to play with me? "; } if (mood == "fine"||"fine") { cout < < "i don't wanna annoy you but do you mind playing with me? "; } if (mood == "bad"||"bad") { cout < < "oh, what happened? can i help you? do you mind playing with me? it's really fun. you'll like it"; } return 0; }

89635878895 89635878895    3   26.09.2019 16:20    0

Ответы
khavakim khavakim  08.10.2020 20:35
Здесь ошибка в том, что логические операции || и && разделяют логические выражения. во всех условиях справа от || стоит просто строка (непустая строка в с++ считается за истину, поэтому все три условия выполняются), а нужно везде дописать mood == . то есть одно условие выглядит так: if (mood == "Good" || mood == "good"). также это не ошибка, но создавать переменные Good, Fine и Bad в этой программе не нужно, так как ты их не используешь. и ошибка в английском) в первом условии должно быть mind playing, а не mind to play. 
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика