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



LinkBack URL
About LinkBacks



