#include <stdio.h>
#include <string.h>
#include <conio.h>
#define MAX 132
char buffer[MAX];
int richtig;
int gleich ()
{
char *str;
char *str2;
str = &buffer[0];
str2 = &buffer[strlen(buffer)-2]; //nuzsno otszecs szinvol CR, poetomu -2, a ne -1
while(str<=str2 && *str==*str2)
{
str++;
str2--;
}
if(str>str2)
return 1;
else
return 0;
}
int main ()
{
printf("Geben Sie bitte ein Wort ein>>>\n"); /*Zadajte pozhalujsta slovo*/
fgets(buffer,MAX,stdin);
richtig = gleich();
if(!richtig)
{
printf("Das ist KEIN Palindrom\n"); /*Eto ne palindrom*/
}
else
{
printf ("Das ist ein Palindrom\n"); /*Eto palindrom*/
}
getch();
return 0;
}
Palindrom, Slovo chitajetsja s oboih storon odinakov
Вот что я пока накатала,
#include <stdio.h>
#define MAX 132
char buffer[MAX];
int richtig;
int main ()
{
printf("Geben Sie bitte ein Wort ein>>>\n"); /*Zadajte pozhalujsta slovo*/
fgets(buffer,MAX,stdin);
richtig = gleich();
if(!richtig)
{ printf("Das ist KEIN Palindrom\n");} /*Eto ne palindrom*/
else
{ printf ("Das ist ein Palindrom\n");} /*Eto palindrom*/
}
int gleich ()
{
char *str;
char *str2;
int len;
int n =0;
len = strlen(buffer);
int i;
str = &buffer;
str2 = &buffer[len-2];
if(*str==*str2)
{
while(*str==*str2&&n!=(len-2)/2)
{
*str++; /* Takim obrazom ja ved "uvelichivaju" adres??? */
*str--;
n++;
}
if(n==(len-2)/2)
return 1;
}
else
return 0;
}
Mne uzhe napisali paru pravilnih reshenij, no kto mne pomozhet, razobratsja, chto nepravilno v moej programme: hod misli, napisanie ili chto?
Esli kto sejchas v ICQ, napishite soobshchenije, please, ja dumaju v ICQ obsudit budet bistree.
Moj nomer 332 431 863
Spasibo
Цитата:
str2 = &buffer[strlen(buffer)-2]; //nuzsno otszecs szinvol CR, poetomu -2, a ne -1
A chto takoe CR?
Цитата:
Originally posted by Katyafiona
Spasibo ogromnoe , teper popitajus ponjat:
A chto takoe CR?
Spasibo ogromnoe , teper popitajus ponjat:
A chto takoe CR?
Cariage Return или Enter. fgets() считает слово вместе с этим символом.