/*Essa função acha o reverso do número e o retorna para a função principal*/
int rev;
while(num){
rev = (num%10 + rev)*10;
num = num/10;
}
return (rev);
}
int main (void){
/*Na função main, o valor é inserido pelo usuário e o programa chama a função palindromo para determinar seu reverso. Depois a função main compara se o reverso é igual ao numero e se isso for verdade retorna se ele é palindromo.*/
int pal,num;
printf("Informe um valor: ");
scanf("%d",&num);
//printf("%d",num); pal = palindromo(num)/10;
if (pal==num)
printf("O numero %d é palindromo!!",pal);
else
printf("O numero %d não é palindromo!!",pal);
return 0;
system ("pause");
}
O que está em negrito é a adaptação que eu tive que fazer. Se executado o código, sem atribuir a função palíndromo dividido por 10 à uma variável, o alor retornado da função possuía sempre uma casa decimal a mais, ou seja, se o usuário digita 121 retornaria que o valor 1210 não é palíndromo. Gostaria da ajuda do pessoal para saber porque o número está retornando multiplicado por 10 e não em seu valor correto.
Pergunta
lucasi
#include <stdio.h>
int palindromo (int num){
/*Essa função acha o reverso do número e o retorna para a função principal*/
int rev;
while(num){
rev = (num%10 + rev)*10;
num = num/10;
}
return (rev);
}
int main (void){
/*Na função main, o valor é inserido pelo usuário e o programa chama a função palindromo para determinar seu reverso. Depois a função main compara se o reverso é igual ao numero e se isso for verdade retorna se ele é palindromo.*/
int pal,num;
printf("Informe um valor: ");
scanf("%d",&num);
//printf("%d",num);
pal = palindromo(num)/10;
if (pal==num)
printf("O numero %d é palindromo!!",pal);
else
printf("O numero %d não é palindromo!!",pal);
return 0;
system ("pause");
}
O que está em negrito é a adaptação que eu tive que fazer. Se executado o código, sem atribuir a função palíndromo dividido por 10 à uma variável, o alor retornado da função possuía sempre uma casa decimal a mais, ou seja, se o usuário digita 121 retornaria que o valor 1210 não é palíndromo. Gostaria da ajuda do pessoal para saber porque o número está retornando multiplicado por 10 e não em seu valor correto.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.