Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Puntoinfinito en 25 Agosto 2012, 11:49 AM

Título: Error en definir variables o uso de cin?
Publicado por: Puntoinfinito en 25 Agosto 2012, 11:49 AM
A ver, ahora ya estoy bastante metido en la programación C++, y no me puedo creer que no sepa sacar la solución de este error. Teóricamente tendría que estar bien, pero prácticamente no sale tan bien. Solo me marca error en la 8 linea, dice que la variable "max" tiene error.

No se cual, porque metiéndonos en código podemos apreciar como la variable "max " es int y no const (modificable) . Las librerías también están bien... no se que sera.

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;
unsigned short int num, max;

int main()
{
    cin >> max;
    num = rand() % max;
    cout << "\n " << num;
    cin.sync();
    cin.get();
    return 0;
}


Gracias por adelantado cracks;)
Título: Re: Error en definir variables o uso de cin?
Publicado por: BlackZeroX en 25 Agosto 2012, 11:59 AM
podría ser un conflicto...

http://www.cplusplus.com/reference/algorithm/max/

Dulces Lunas!¡.
Título: Re: Error en definir variables o uso de cin?
Publicado por: Puntoinfinito en 25 Agosto 2012, 12:05 PM
Ostras...
¡¡¡Se me olvido pensar en las palabras clave!!!
Ahora ya sale todo correctamente, madre mía, error de no fijarse bien.
Muchas gracias y saludos:)
Título: Re: Error en definir variables o uso de cin?
Publicado por: rir3760 en 27 Agosto 2012, 15:45 PM
Tal vez sea un conflicto pero no debería, algunos puntos en relación con el programa:

1) No debe existir un conflicto con la función "max" ya que no incluyes el encabezado <algorithm>.

2) El compilador debería reportar la llamada a "rand" ya que no se tiene acceso a su prototipo (este se encuentra en <cstdlib>).

3) No llamar a "srand" tiene el mismo efecto que "srand(1)". En otras palabras el resultado sera el mismo cada vez que se ejecute el programa.

Así debería funcionar:
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <cstdlib>
using std::rand;

int main()
{
   unsigned short int num, max;
   
   cin >> max;
   num = rand() % max;
   cout << num << endl;
   
   cin.sync();
   cin.get();
   
   return 0;
}


Pero sigo pensando que es algo relacionado con el compilador (o la forma en que se ejecuta este).

Un saludo