Cita:
Iniciado por superchava666 ayuda con este problema. no se cómo comenzar.
.................................................. ....
nota: ahroita estoy utilizando sentencias if..else y while, es un ejerecicio del libro como programar en c,c++ y java de deitel
Creo que con lo que está usando es un poco fuerte ponerle de entrada una función.
Lo mismo pero sin función:
Código C++:
Ver original#include <stdio.h>
int main(void){
int i,digitos=0,numero,N,num=0;
printf("Introduzca un numero de cinco digitos:\n"); do{
for (i=10;(numero/i)>0;i*=10){
digitos++;
}
if (digitos!=4){
puts("He dicho de cinco digitos"); printf("Introduzca un numero de cinco digitos:\n"); }
}while (digitos!=4);
num=0,N=numero;
while (N>0){
num=num*10+N%10;
N/=10;
printf("num=%d\n",num
);/* observa como se va formando num */ }
if (numero==num)
else
return 0;
}
En esencia lo que se hace en el while es ir convirtiendo la variable num en la variable numero pero escrita al revés y ya luego se comparan.
Por ejemplo si numero=54321, y recuerda que N%10 da el último dígito, la variable num inicializa a cero y empieza el while :
* num=0+(54321)%10=0+1=1
N=N/10=54321/10=5432
*actua otra vez el while :
num=1*10+(5432%10)=10+2=12
N=N/10=5432/10=543
*actua otra vez el while :
num=12*10+(543%10)=120+3=123
N=N/10=543/10=54
*actua otra vez el while :
num=123*10+(54%10)=1230+4=1234
N=N/10=54/10=5
*actua otra vez el while :
num=1234*10+(5%10)=12340+5=12345
N=N/10=5/10=0 ==>salgo del while
Resultado: num=12345, justito la variable numero=54321 al reves. Ahora compara y al no ser iguales no es capicua o palindromo.
¡¡¡Saluditos!!!