Witam, mam napisać program który właśnie sprawdza czy dany wyraz jest palindromem, mam już szkic który w miarę działa, lecz jeden przypadek mi pozostał. Kod:
Kod: Zaznacz cały
/*a jest zmienna od sprawdzania w tablicach znaków czy są one takie same*/
#include <stdio.h>
#include <string.h>
int main()
{
char word[30];
int a=0;
scanf("%s",word);
while(a < strlen(word)/2)
{
if(word[a] == word[strlen(word)-1-a])
a=a+1;
else
{
if(word[a] == word[strlen(word)-a-2] && word[a+1] == word[strlen(word)-a-1] && a != strlen(word)-a-2)
a=a+2;
else
{
printf("FALSE");
return 1;
}
}
}
printf("TRUE");
return 0;
}
lecz jeden przypadek mi nie działa, gdy znaków jest 8, tzn. na przykład słowa TRASTART i TRAŁART, jedno i drugie pokazuje mi na true i wiem dlaczego, musiałbym drugiego if-a przerobić, tylko nie wiem właśnie jaki dać warunek Ł, które jest w swoich obu znakach różne jak słowa S i T, żeby Ł pokazywał mi jako true a S i T jako false. Być może trochę niejasno wytłumaczyłem, to proszę pisać.
Ostatnio zmieniony 30 lis 2016, o 08:51 przez
Afish, łącznie zmieniany 1 raz.
Powód: Kod umieszczaj na forum.