Palindrom - problem z memcmp?

0

Czy moglibyście sprawdzić, gdzie mam błąd?
Wejście: liczba testów, dla każdego testu liczba liter w słowie i to słowo, np.

2
4
kook
7
niepali

Wyjście: TAK, jeżeli słowo jest palindromem, NIE, jeżeli nie jest. Każde w osobnej linii.

Mój kod:

#include <cstdio>
#include <string.h>
#define ui unsigned int
using namespace std;
int main() {
        ui testy, test;
        scanf("%u", &testy);
        while(testy>0)
        {
                scanf("%u", &test);
                char** str1=new char*[test];
                char** str2=new char*[test];
                for(ui i=0; i<test; i++)
                {
                        scanf("%s", str1[i]);
                        str2[test-i-1]=str1[i];
                }
                if (memcmp(str1, str2, test)==0)
                        printf("TAK");
                else
                        printf("NIE");                  
                testy--;
        }
} 

Dzięki :)

0

Próbowałeś debugować?

0

Ogólnie błąd to masz wszędzie, od niezrozumienia czym jest napis, po nieumiejętność korzystania ze scanfa. Spróbuj poszczególne elementy (np. pobieranie danych) przetestować oddzielnie, najlepiej z czymś, co Ci pokaże kiedy wyjeżdżasz poza tablicę.

0

A znacie jakiś fajny debugger na Androida? :)

0

Chyba nie chcesz powiedzieć, że piszesz w C++ na Androida?

0

Nie na Androida, ale na Androidzie :)
I oczywiście nie na telefonie, tylko na tablecie z klawiaturą. W scanfie powinno być "%c" zamiast "%s", tak?

0

No to jak nie na Androida to pod Androidem nie podebugujesz.

0

Przekombinowane... Nie lepiej sprawdzać litery wyrazu? Czy pierwsza == ostatnia, czy druga == przed ostatnia itd. Po 2gie po co tam wskaźniki dla tak małych tablic znakowych? Nie zwalniasz pamięci, wydaje mi się, że powinieneś to robić co obrót pętli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1