NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zjištění palindromu

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Pepa Pacalaj
Člen
Avatar
Pepa Pacalaj:3.4.2016 12:23

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.4.2016 12:23
Avatar
Jakub Šilhavý:3.4.2016 12:29

Č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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
3.4.2016 12:29
Život je pes, a proto žít je psina.
Avatar
Pepa Pacalaj
Člen
Avatar
Pepa Pacalaj:3.4.2016 12:33

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

 
Nahoru Odpovědět
3.4.2016 12:33
Avatar
VelkyKopyto
Člen
Avatar
Odpovídá na Jakub Šilhavý
VelkyKopyto:20.4.2020 14:51

A mas to i v jazyce českém ?

 
Nahoru Odpovědět
20.4.2020 14:51
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 4 zpráv z 4.