Вопрос для тех кто разбирается в программировании на С++, почему у меня всегда выводит ответ "yes"? - Компьютерные вопросы

Вопрос Вопрос для тех кто разбирается в программировании на С++, почему у меня всегда выводит ответ "yes"?

Регистрация
4 Май 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
#include
#include

using namespace std;

int main()
{
string s;
bool Palindrom = true;
getline(cin, s);

for (int i = 0; i < s.size() / 2; i++) {
if (s != s[s.size() - i - 1]) {
Palindrom = false;
break;

}

}

if (Palindrom = true) {
cout << "yes";
}
else cout << "no";

return 0;
}
 
Регистрация
16 Сен 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
= - оператор присваивания. Оператор присваивания возвращает значение объекта, переданного левым операндом. Т. е. (Palindrom = true) возвращает значение Palindrom после присовоения (т. е. true). Затем оператор if получает это значение true и выводится "yes". Для сравнения значений нужно использовать оператор ==. т. е. if (Palindrom == true) P.s. А почему ты решил разместить вопрос в разделе Python?
 
Регистрация
14 Дек 2012
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
Предыдущие ответы верны нужно == в последнем if, но механизм можно упростить обращаясь к String s, как к массиву char, т. е. К примеру s[1] == s[s.length()].
 
Сверху Снизу