Error en definir variables o uso de cin?

Iniciado por Puntoinfinito, 25 Agosto 2012, 11:49 AM

0 Miembros y 1 Visitante están viendo este tema.

Puntoinfinito

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;)
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

BlackZeroX

The Dark Shadow is my passion.

Puntoinfinito

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:)
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language