
Вопрос задан 29.07.2023 в 12:39.
Предмет Информатика.
Спрашивает Незборецкая Елизавета.
Если я ввожу "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; }

Ответы на вопрос

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



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
It looks like you are trying to create a simple program that asks for the user's mood and responds accordingly. However, there is an issue with the conditional statements. Let me help you fix it.
In C++, when using conditional statements, each condition needs to be evaluated separately. Currently, your conditions are not working as intended because the OR (||
) operator is not used properly.
To fix the issue, you need to modify the conditional statements like this:
cpp#include <iostream>
using namespace std;
int main() {
string name;
cout << "What is your name? ";
cin >> name;
cout << "Hello, " << name << endl;
cout << "How are you? ";
string mood;
cin >> mood;
// Convert the input mood to lowercase to make the comparison case-insensitive
for (char &c : mood)
c = tolower(c);
if (mood == "good") {
cout << "Okay, so do you mind playing with me? ";
} else if (mood == "fine") {
cout << "I don't want to annoy you, but do you mind playing with me? ";
} else if (mood == "bad") {
cout << "Oh, what happened? Can I help you? Do you mind playing with me? It's really fun. You'll like it. ";
} else {
cout << "Sorry, I didn't understand your mood. ";
}
return 0;
}
Changes made:
- Removed the unnecessary variables
Good
,Fine
, andBad
. - Converted the input
mood
to lowercase so that it can be compared case-insensitively. - Used proper if-else statements to handle different mood conditions.
Now the program should respond appropriately based on the user's input without repeating both "fine" and "bad" messages.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili