Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: BJM en 17 Enero 2013, 19:48 PM

Título: Como utilizar dos veces la funcionn srand(time(NULL))
Publicado por: BJM en 17 Enero 2013, 19:48 PM
Debo generar primeramente dos valores aleatorios entre 0 y 1, si se genero 0 luego se debe generar otro numero aleatorio entre 0-9, si por el contrario se genero fue 1 luego se debe generar un numero aleatorio entre 0-5, pero siempre se generan los mismos numeros, a continuacion el codigo:

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

main(){
       int a,b,i;
       for(i=1;i<=12;i++){
       srand(time(NULL));
       a=rand()%2;
       printf("\n\n Valor aleatorio (0-1): %d",a);
       if(a==0){
       srand(time(NULL));
       b=rand()%10;
       printf("\n\n Valor aleatorio (0-9): %d",b);
       }
       else{
           srand(time(NULL));
           b=rand()%6;
           printf("\n\n Valor aleatorio (0-5): %d",b);
           }
             }
       printf("\n");
       system("pause");
       }
Título: Re: Como utilizar dos veces la funcionn srand(time(NULL))
Publicado por: durasno en 17 Enero 2013, 20:35 PM
La funcion srand solo tenes que usarla una vez y, para evitar confuciones, al principio del programa.. AL llamar tantas veces a srand estas reiniciando la semilla, lo cual provoca que se repitan los numeros


Saludos
Título: Re: Como utilizar dos veces la funcionn srand(time(NULL))
Publicado por: apuromafo CLS en 19 Enero 2013, 07:04 AM
interesante lo que tienes que hacer para hacer en base 2, base 10, base 6

yo alguna vez tuve que hacer llamadas con srand

si te sirve el ejemplo lo tengo aca:
http://foro.elhacker.net/ingenieria_inversa/reto_crackme_6_de_flamer-t368430.15.html

saludos Apuromafo

pd:use arrays, asi lograba evitarme las confusiones de los valores posibles ^^
Título: Re: Como utilizar dos veces la funcionn srand(time(NULL))
Publicado por: Puntoinfinito en 19 Enero 2013, 11:58 AM
Debes poner el srand(time(NULL)); tan solo una vez. Ponlo al principio del main o antes de comenzar...