Diskuze: Zjištění palindromu

C++ C a C++ Zjištění palindromu

Avatar
Pepa Pacalaj
Člen
Avatar
Pepa Pacalaj:

Ahoj,
dostali jsme za úkol napsat program, který zjistí jestli zadané slovo je palindrom, nebo není.
Program mi nechce projít kompilací.

#include <iostream>
#include <string>
using namespace std;
string slovo;
bool palindrom = true;
int main()
{
cin >> slovo;
for (int i = 0; i < slovo.length; i++)
{
if (slovo[i] != slovo[slovo.length - i])
{
palindrom = false;
}
}
cout << palindrom << endl;
return 0;
}

  • předem děkuji.
 
Odpovědět 3. dubna 12:23
Avatar
Jakub Šilhavý:

Čau, .length() je funkce, tak u ní musíš mít závorky (argument).

A ještě drobnost, program ti nebude fungovat kvůli tomuhle řádku:

if (slovo[i] != slovo[slovo.length() - i])

Musíš si uvědomit, že pole se indexuje od nuly, tak proto musíš při ověřování znaku z pravé strany odečíst ještě -1.

if (slovo[i] != slovo[slovo.length() - i - 1])

Finální kód vypadá nějak takto:

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

bool palindrom = true;
string slovo;

int main() {
        cin >> slovo;
        for (int i = 0; i < slovo.length(); i++) {
                if (slovo[i] != slovo[slovo.length() - i - 1]) {
                        palindrom = false;
                }
        }
        cout << palindrom << endl;
        return 0;
}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 3. dubna 12:29
Život je pes, a proto žít je psina.
Avatar
Pepa Pacalaj
Člen
Avatar
Pepa Pacalaj:

Moc děkuji, vše funguje jak má. :-)

 
Nahoru Odpovědět 3. dubna 12:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.