/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Números aleatorios con decimales

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
netjpv



Registrado: 05 Oct 2005
Mensajes: 2

MensajePublicado: 27/08/2007 1:19 pm
Título: Números aleatorios con decimales

Como sacar números aleatorios decimales entre 0 y 1 con Dev-C++?
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 241
Ubicación: Cono Sur

MensajePublicado: 27/08/2007 2:24 pm
Título:

Hola

Mira esto:

Código:

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

int main(void)
{
    float a;
    srand(time(NULL)); /* Toma un número a partir de la fecha y hora actual.
    Varía en cada centésima de segundo. La semilla se toma del reloj del
    sistema. */
    printf("Numero aleatorio entre 0 y 1: %.2f\n\n", a=rand()%2);
    system("PAUSE");
    return 0;
}


El problema con este código es que, si bien la parte entera te generará aleatoriamente en el intérvalo [0; 1], la parte decimal -con dos posiciones decimales- NO, siempre será 00. Lo que podrías hacer es crear otra variable que te genere aleatoriamente la parte decimal y luego, mediante las funciones de manejo de cadenas, concatenas los dos resultados. Bueno, esta es una de las opciones claro.

Otra manera sería algo así:

Código:

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


int main(void)
{
    int a,b;
    srand(time(NULL));
    printf("Numero aleatorio entre 0 y 1: %d.%d\n\n", a=rand()%2, b=rand()%10);
    system("PAUSE");
    return 0;
}


Un saludo.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

MensajePublicado: 27/08/2007 5:23 pm
Título:

Suponiendo que el lenguaje sea C ...

Basta con

1) Obtener el resultado de la funcion rand().
2) Dividir el resultado del paso 1 entre "(RAND_MAX + 1.0)".

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com