• Предмет: Информатика
  • Автор: veronikatyan54p9t0vc
  • Вопрос задан 7 лет назад

Если я ввожу "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;
}

Ответы

Ответ дал: vaash
0
здесь ошибка в том, что логические операции || и && разделяют логические выражения. во всех условиях справа от || стоит просто строка (непустая строка в с++ считается за истину, поэтому все три условия выполняются), а нужно везде дописать mood == . то есть одно условие выглядит так: if (mood == "Good" || mood == "good"). также это не ошибка, но создавать переменные Good, Fine и Bad в этой программе не нужно, так как ты их не используешь. и ошибка в английском) в первом условии должно быть mind playing, а не mind to play. 
Ответ дал: veronikatyan54p9t0vc
0
Всё, поняла, благодарю.
Ответ дал: vaash
0
не за что! рад был помочь)
Ответ дал: veronikatyan54p9t0vc
0
Как мне добавить исключения?
Ответ дал: veronikatyan54p9t0vc
0
Можно написать, что mood не равен good||fine||bad?
Ответ дал: veronikatyan54p9t0vc
0
Что не так? try {
string mood;
if (mood == "Good"| mood == "good"| mood == "Fine"| mood == "fine"| mood == "Bad"| mood == "bad") {
throw "O-ops";
}
}
catch (string mood) {
cout < }
Вас заинтересует