Como utilizar dos veces la funcionn srand(time(NULL))

Iniciado por BJM, 17 Enero 2013, 19:48 PM

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

BJM

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");
       }

durasno

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
Ahorrate una pregunta, lee el man

apuromafo CLS

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 ^^

Puntoinfinito

Debes poner el srand(time(NULL)); tan solo una vez. Ponlo al principio del main o antes de comenzar...
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.