[C con Clase] rand () y srand () en c
Diego
bruceleechile en gmail.com
Mie Mayo 27 15:51:00 CEST 2009
De verdad muchas gracias a todos por contribuir a responder mi consulta ;),
ahora ahi algo que escribio Steven Davidson, que no entendi la implementacion de este:
> Si no existe, entonces crea un array con todos los números que quieres y usa
> 'rand()' para generar números enteros a modo de índice para seleccionar
> cada número guardado en el array. Por ejemplo,
>
>int array[5] = { 2,5,9,4,1 };
> valor_generado = array[ calcular_indice(5) ];
>donde,
>
>int calcular_indice( int n )
>{
> return (int)( rand()*(n/(RAND_MAX+1.0)) + 0.5 );
>}
No comprendo bien la implementacion de ésta, osea seria:
int calcular_indice (int n)
{
return (int)( rand()*(n/(RAND_MAX+1.0)) + 0.5 );
}
int main ()
{
int array[5] = { 2,5,9,4,1 };
valor = array[ calcular_indice(5) ];
return 0;
}
Bueno yo en windows con el Dev c++ probe este codigo:
#include <stdio.h>
#include <stdlib.h>
int calcular_indice (int n)
{
return (int)( rand()*(n/(RAND_MAX+1.0)) + 0.5 );
}
int main ()
{
int array[5] = { 2,5,9,4,1 };
int valor;
valor = array[ calcular_indice(5) ];
printf("%i \n", valor);
system("pause");
return 0;
}
Y siempre me arroja 2 xD!, comprendo que con calcular_indice(5) le estamos pasando el total de elementos del array a la funcion, pero siempre me arroja 2
Probe el mismo codigo en linux (ubuntu), logicamente sin el system("pause"); xD! y siempre me arroja 1 xD!, haber si alguien puede decirme por que me ocurre esto por favor
gracias
Más información sobre la lista de distribución Cconclase