Дать вывод, когда строка является определенным словом? - PullRequest
0 голосов
/ 04 февраля 2020
#include <iostream>

using namespace std;

int main()
{
    string n;
    cout << "Enter the name of an automobile: " << endl;
    cin >> n;
    while( n != "End") {
        if( n == ("Tesla" or "Volt" or "Leaf")) {
            cout << "Electric" << endl;}
            else {
                if( n == ("Clarity" or "Mirai")){
                    cout << "Hydrogen Powered" << endl;}

                else {
                    cout << "Gas Powered" << endl; }}
        cout << "Enter the name of an automobile: " << endl;
        cin >> n;
    }

    return 0;

}

Нужно сказать, как работает каждый автомобиль. В основном, если я введу «Тесла», он должен сказать «Electri c»; «Форд» должен придумать «Бензиновый». Это заканчивается, когда я ввожу «Конец». Я получаю эту ошибку .cpp | 16 | error: недопустимые операнды для двоичного выражения ('std :: __ 1 :: string' (aka 'basic_string, allocator>') и 'bool') |

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Это должно работать! В C ++ нет or. Используйте ||. Также условие необходимо ставить каждый раз в if как if(n=="Tesla"||n=="Volt"||n=="Leaf").

#include <iostream>

using namespace std;

int main()
{
    string n;
    cout << "Enter the name of an automobile: " << endl;
    cin >> n;
    while( n != "End") {
        if( n == "Tesla" || n== "Volt" ||n== "Leaf") {
            cout << "Electric" << endl;}
            else {
                if( n == "Clarity" || n=="Mirai"){
                    cout << "Hydrogen Powered" << endl;}

                else {
                    cout << "Gas Powered" << endl; }}
        cout << "Enter the name of an automobile: " << endl;
        cin >> n;
    }

    return 0;

}
0 голосов
/ 04 февраля 2020
 if( n == ("Tesla" or "Volt" or "Leaf"))

необходимо изменить на

 if( (n == "Tesla") || (n == "Volt") || (n == "Leaf") )

Внести аналогичные изменения в других местах, где вы делаете то же самое

  • Ключевое слово or отсутствует C ++. Вам нужно использовать ||
  • ("Tesla ||" Volt "||" Leaf ") всегда возвращать true. Таким образом, условие станет, если (n == (true)), что никогда не будет правда.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...