Para ser uma palíndromo a palavra ou frase deve ser igual inclusive em seu
sentido contrário. Ex: ARARA, REVIVER, SUBI NO ONIBUS
int main(int argc, char** argv) {
int i = 0, j = 0;
char palavra[20], flag = 1;
printf("Digite a palavra:\n");
scanf("%s", &palavra);
while (palavra[++i] != '\0') {
}
i--;
while (palavra[j] != '\0') {
if (palavra[j] != palavra[i]) {
flag = 0;
}
j++;
i--;
}
printf("\n %s \n", (flag) ? "palindromo" : "não palindromo");
}
Para palavra:
#include <stdio.h>
#include <string.h>
int palin(char [100], int, int);
int main()
{
int i=0, j=0;
char pal[100];
printf("Digite uma palavra: ");
scanf("%s", &pal);
j=strlen(pal);
i=0;
if(palin(pal, i, j-1)==0)
printf("\nA palavra nao e palindrome.\n");
else
printf("\nA palavra eh palindrome.\n");
return 0;
}
int palin(char pal[100], int i, int j)
{
if(j-i<0)
return 1;
else
{
if(pal[i]!=pal[j])
return 0;
else
return palin(pal, i+1, j-1);
}
}
Para frase:
#include <stdio.h>
#include <string.h>
int main()
{
char frase1[100], frase2[100];
int i, j, k, tam1, tam2;
printf("\nDigite a primeira frase: ");
scanf("\n%[a-zA-Z ]", &frase1);
printf("\nDigite a segunda frase: ");
scanf("\n%[a-zA-Z ]", &frase2);
tam1=strlen(frase1);
tam2=strlen(frase2);
for(i=0;i<tam1;i++)
{
if(frase1[i]==32)
{
for(j=i;j<tam2;j++)
frase1[j]=frase1[j+1];
tam1--;
}
}
printf("\nFrase1: %s", frase1);
for(i=0;i<tam2;i++)
{
if(frase2[i]==32)
{
for(j=i;j<tam2;j++)
frase2[j]=frase2[j+1];
tam2--;
}
}
printf("\nFrase2: %s", frase2);
for(i=0;i<tam1;i++)
{
if(frase1[i]!=frase2[tam1-1-i])
{
printf("\n\nAs frases não são palíndromas.\n\n");
break;
}
else
{
if(i==tam1-1)
printf("\n\nAs frases são palindromas.\n\n");
}
}
system("PAUSE");
return 0;
}
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar