Uff, ese código es puro azar. Generas números aleatorios hasta que coincide que uno es capicúa. Además lo hace al revés. Según ese do while() lo que haces es generar números hasta que uno no es capicúa. La condición del while() es para que se repita, tendría que ser: (u != dm || d != um).
Lo suyo sería asegurar que es capicúa como te decía antes. Veamos:
Para empezar te vendría bien una función:
Y ahora creas un número aleatorio de 3 cifras. Lo más fácil es que crees los 3 primeros dígitos y agregues los 2 últimos después:
Al final esa variable <numero> (si no me equivoco) contendrá siempre un número de 5 cifras capicúa.
Se puede hacer mejor, no hay duda, pero de esta manera ves cuál ha sido el procedimiento a seguir.
Lo suyo sería asegurar que es capicúa como te decía antes. Veamos:
Para empezar te vendría bien una función:
Código
int generarAleatorio(int minimo, int maximo){ // Devuelve un numero aleatorio en el rango [minimo, maximo] return numero; }
Y ahora creas un número aleatorio de 3 cifras. Lo más fácil es que crees los 3 primeros dígitos y agregues los 2 últimos después:
Código
int numero = generarAleatorio(100, 999); int penultimoDigito = (numero / 10) % 10; int ultimoDigito = numero / 100; numero = numero * 100 + penultimoDigito * 10 + ultimoDigito;
Al final esa variable <numero> (si no me equivoco) contendrá siempre un número de 5 cifras capicúa.
Se puede hacer mejor, no hay duda, pero de esta manera ves cuál ha sido el procedimiento a seguir.
Muchas gracias ahora si!!!!