Как мой простой оператор if-else недоступен для кода? - PullRequest
0 голосов
/ 02 ноября 2018

Честно говоря, я в шоке, получаю ошибку. Я младший майор CS, и я не могу заставить эту простую программу работать. Клион говорит, что эти две строки недоступны, но мои контрольные примеры, похоже, работают.

Код:

#include <iostream>
#include <string>
using namespace std;

int main() {

    string s = "";
    while(s != "|") {
        int val1 = 0;
        int val2 = 0;
        cin >> val1;
        cin >> val2;
        if(val1 == val2) {
            cout << "the numbers are equal.\n";
        } else {
            cout << "the smaller value is: " << min(val1, val2) << '\n'; // Says these two 
            cout << "the larger value is: " << max(val1, val2) << '\n'; // lines are unreachable
        }
        cin >> s;
    }

    return 0;
}

Контрольные примеры:

3 3
the numbers are equal.
f
4 5
the smaller value is: 4
the larger value is: 5
|

Process finished with exit code 0

Если этот код так недоступен, то как моя программа достигла его?

1 Ответ

0 голосов
/ 02 ноября 2018

Может быть несколько проблем с CLion

Это - это то, что привлекло мое внимание:

Вы проверяете, равна ли строка массиву чатов, это может быть разрешено во время выполнения, но средство проверки кода не нравится. Попробуйте использовать:

char s;
while(s!='|') {...}

Кроме этого я понятия не имею ...

Возможно, он не предсказал изменение переменных, попробуйте использовать ключевое слово volatile? Это может помочь ... Это все еще ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...