• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z palindromem

Cloud VPS
0 głosów
371 wizyt
pytanie zadane 14 stycznia 2021 w C i C++ przez Pelo Użytkownik (520 p.)

Dzień dobry, dlaczego dla jednego znaku kod zamieszczony poniżej zwraca, że wyraz nie jest palindromem? Zadanie oczywiście rozwiązałem zmieniając delikatnie warunek (z for (int i=0; i <= napis.length() - 1 - i; i++) na for (int i=0; i < napis.length() - i; i++)) jednak nadal nie rozumiem dlaczego ten pierwszy nie działa. Z góry dziękuję za odpowiedź.


#include <iostream>
using namespace std;

bool czyPalindrom(string napis) {
    for (int i=0; i <= napis.length() -1 - i; i++) {
        if (napis[i] != napis[napis.length() - 1 - i]) {
            return 0;
        }
    }
    return 1;
}


int main()
{
    cout << czyPalindrom("x");
}

 

1
komentarz 14 stycznia 2021 przez Whistleroosh Maniak (57,400 p.)
Zobacz ile jest równe napis.length() -2, bo to wbrew pozorom nie będzie -1
komentarz 14 stycznia 2021 przez Pelo Użytkownik (520 p.)
Wow, faktycznie wyskakują jakieś dziwne wartości. Bardzo dziękuję za pomoc :)

1 odpowiedź

–2 głosów
odpowiedź 14 stycznia 2021 przez Eriss69 Gaduła (4,470 p.)

Podobne pytania

0 głosów
3 odpowiedzi 1,909 wizyt
pytanie zadane 21 października 2019 w C i C++ przez Maciek Zębala Nowicjusz (140 p.)
0 głosów
3 odpowiedzi 12,274 wizyt
pytanie zadane 1 grudnia 2017 w C i C++ przez prosialke2391 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 483 wizyt
pytanie zadane 23 listopada 2016 w C i C++ przez godlo9888 Nowicjusz (210 p.)

93,484 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,896 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...