Вопрос задан 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; }
0 0
Перейти к ответам

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

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

  1. Removed the unnecessary variables Good, Fine, and Bad.
  2. Converted the input mood to lowercase so that it can be compared case-insensitively.
  3. 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.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос