Como puedo aumentar la capacidad de la variable con "Rand"

Iniciado por Cesartochii, 15 Octubre 2015, 17:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Cesartochii

Tengo una duda para una tarea.

Me pidieron hacer un numero aleatorio del 0 al 999999.  Pero al momento de correr el programa, solo tengo resultados hasta 32 mil y algo.

Como puedo aumentar esa capacidad para que me de números hasta el 999999 ?

Muchas Gracias:)

engel lex

#1
como no podemos asumir que eres un experto en el lenguaje y saber usar bien las funciones del mismo, sería bueno que mostraras tu código para ver cuales son los potenciales problemas, ya que la función rand arroja normalmente un resultado de 32bits siendo mucho mayor que el que tu indicas

al colocar código, no olvides usar las etiquetas de código (GeSHI)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ivancea96

En el caso de rand() de C, si no siempre, suele ser 32767 el máximo. El máximo es el valor de RAND_MAX.

Una opción que tienes, es ir cogiendo dígito a dígito:

Código (cpp) [Seleccionar]
int n = 0;
for(int i=0; i<6; i++)
    n += (rand()%10)*pow(10,i);


Entre muchas otras opciones.

Cesartochii

#3
Cita de: engel lex en 15 Octubre 2015, 17:36 PM
como no podemos asumir que eres un experto en el lenguaje y saber usar bien las funciones del mismo, sería bueno que mostraras tu código para ver cuales son los potenciales problemas, ya que la función rand arroja normalmente un resultado de 32bits siendo mucho mayor que el que tu indicas

al colocar código, no olvides usar las etiquetas de código (GeSHI)

esta es mi codification. :)


Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>

int x;
main()

{
srand (time(NULL));

x=rand()% 999999;

printf("%i", x);


system ("pause");
return 0;
}



Mod: Los códigos deben ir en etiquetas GeSHi

engel lex

in este caso comprueba cuanto es MAX_RAND, si es 32mil y algo, usa la solucíón de ivancea96


por cierto, main es una función tipo int, no debes obviar eso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.