Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - emilioFIE

#1
Cita de: YreX-DwX en 15 Junio 2020, 18:49 PM
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:

int generarAleatorio(int minimo, int maximo){ // Devuelve un numero aleatorio en el rango [minimo, maximo]
  srand(time(NULL)); // NULL es equivalente a 0. Lo puedes hacer aqui o antes de llamar a la funcion
  int numero = minimo + rand() % (maximo - minimo + 1);
  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:

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!!!!  :D
#2
esto tengo hasta el momento

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int capicua();
int main()
{
   int num;
   printf("El numero es: %d\n",capicua());
   return 0;
}

int capicua()
{
   int num,u,d,c,um,dm;
   srand(time(0));
   do
       {
         num = (rand()%99999-10000+1)+10000;
         u=num%10;
         d=num/10%10;
         c=num/100%10;
         um=num/1000%10;
         dm=num/10000;
       } while  (u==dm&&d==um);

  return num;
}
#3
Programación C/C++ / Numero al azar capicua
15 Junio 2020, 16:40 PM
Hola!!! Necesito ayuda con este ejercicio:

Programar una funcion que retorne un numero generado al azar de 5 digitos que cumpla con la condicion de ser capicua. Llame  esta funcion desde el main y mostrar en pntalla el numero devuelto por la misma.

gracias!!!!