utilize a função abaixo;
retorno: inteiro entre zero e limiteMax .
Precisa incluir as bibliotecas time.h e math.h
- int GeraNumeroAleatorio (int limiteMax)
{
int x;
float tmp;
srand( (unsigned)time( NULL ) );
x = rand();
if (x > limiteMax)
{- tmp = ((float)x/(float)RAND_MAX) * limiteMax;
x = floor(tmp);
}
return x;- tmp = ((float)x/(float)RAND_MAX) * limiteMax;
}

3 comentários:
Em C#:
public int GeraNumeroAleatorio(int LimiteMaximo)
{
int x;
Random rand = new Random();
x = rand.Next(LimiteMaximo);
return x;
}
ou, melhor ainda:
public int GeraNumeroAleatorio(int LimiteMinimo, int LimiteMaximo)
{
int x;
Random rand = new Random();
x = rand.Next(LimiteMinimo, LimiteMaximo);
return x;
}
Só uma contribuiçãozinha extra. HEHEHE!!
Grande Juli:
Obrigado pela contribuição...
Serve também para mostrar como um código escrito em C# é melhor:
a) é mais claro;
b) já instancia uma classe que por sí só tem diferentes métodos, já testada e que funciona
c) usa alocação dinâmica de memória o que permite gerenciar melhor a memória.
Portanto, melhor escrever em C# do que em ANSI C...
Abraços.
Tchê.
Na verdade é tudo uma questão de objetos prontos em biblioteca. A classe Random já é nativa do Namespace System e aí tudo fica mais fácil.
Postar um comentário