Как мой простой оператор if-else недоступен для кода?

Честно говоря, в шоке, я получаю ошибку. Я младший майор 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

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

2

Решение


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

это это тот, который привлек мое внимание:

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

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


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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]