/* Prob 3 - 28/4 Dizemos que um número natural é capicua (palíndromo) se lido da direita para a esquerda ou da esquerda para a direita é o mesmo número. Exemplos: 567765 e 32423 são capicuas 567675 não é capicua Frases ou palavras podem ser palíndromes: anilina Socorram me subi no ônibus em Marrocos Oto come doce seco de mocotó A diva em Argel alegra me a vida Escreva uma função de protótipo int descasca (int n, int * primdig, int * ultdig) que recebe um inteiro n > 0, devolve em *primdig o primeiro dígito, em *ultdig o último e devolve o número obtido removendo estes dígitos de n. Assim, por exemplo, se n = 14378, o valor de *primdig será 1, *ultdig será 8 e a função vai devolver 437. Se n = 14, *primdig = 1, *ultdig = 4 e devolve 0. Se n = 5, *primdig = 5, *ultdig = 5 e devolve 0. Se n = 505, *primdig = 5, *ultdig = 5 e devolve 0. Escreva um programa que recebe um inteiro n > 0 e verifica se n é capicua. Você pode supor que n não contém o dígito 0. n = 501015 não é capicua, mas nossa programa diz que é */ #include int descasca (int n, int *primdig, int *ultdig); int descasca (int n, int *primdig, int *ultdig) { int aux = n, mult = 1; *ultdig = n % 10; while (aux / 10 != 0){ aux = aux / 10; mult = mult * 10; } *primdig = aux; aux = (n - ((*primdig) * mult)) / 10; return (aux); } int main() { int n, aux, prim, ult, palindrome = 1; printf("Digite n > 0: "); scanf("%d", &n); aux = n; while (aux >= 10 && palindrome == 1){ aux = descasca(aux, &prim, &ult); if (prim != ult) palindrome = 0; } if (palindrome == 1) printf("%d é capicua\n", n); else printf("%d não é capicua\n", n); return 0; }