My function azar doesn't generate the correctly random numbers in linux, but it works in Windows, any ideas?
Code:
#include <iostream>
#include <ctime>
#include <cstdlib>
using std::cout;
using std::cerr;
using std::cin;
using std::endl;
int azar(int min, int max)
{
int rango = (max - min)+1;
return min+int(rango*rand()/(RAND_MAX + 1.0));
}
int main ()
{
int menor = 0, mayor = 0, total = 0, indice = 0;
cerr << "Generador de numeros al azar" << endl;
cout << "Dame el valor menor del rango: "; cin >> menor;
cout << "Dame el valor mayor del rango: "; cin >> mayor;
if (menor >= mayor)
{
cerr << "Error: El menor tiene que ser...menor" << endl;
exit (1);
}
cout << "Cuantos numeros al azar quieres mostrar: "; cin >> total;
if (total == 0)
{
cerr << "Error: Cual es el fin de mostrar cero numeros." << endl;
exit (2);
}
srand((unsigned)time(0));
for ( ; indice < total; indice++)
{
cout << "[" << (indice+1) << "]= " << azar( menor, mayor) << endl;
}
return 0;
}