|
/* Leer por teclado un número entero largo e indicar si el número leído es o no capicúa. Para ello debe utilizarse un array unidimensional donde almacenaremos cada una de las cifras del número leído.
Se implementarán dos funciones, una para descomponer el número en cifras y cargar el array, y otra para comparar las posiciones del array y determinar si el número es capicúa. */
#include <stdio.h>
int descomponer_numero(long int,int[]);
int comparar_posiciones(int,int[]);
main()
{
long int n;
int t[10],c;
system("cls");
printf("\nIntroduce un numero para ver si es capicua :");
scanf("%ld",&n);
c=descomponer_numero(n,t);
if(comparar_posiciones(c,t))
printf("\n\t\t\t CAPICUA \n ");
else
printf("\n\t\t\t NO CAPICUA \n");
}
int descomponer_numero(long int a,int tabla[])
{
int cifras=0;
while(a!=0)
{
tabla[cifras]=a%10;
a=a/10;
cifras++;
}
return cifras; //Devolvemos la cantidad de cifras que tenía el número
}
int comparar_posiciones(int c,int tabla[])
{
int i=0;
while(i<c)
{
if(tabla[i]!=tabla[c-1])
return 0; //Falso, no es capicúa
i++;
c--;
}
return 1;
//Verdadero, es capicúa
}
d
VOLVER
|