Error de compilación Juez Online


#1

Hola, estoy probando un código en el juez online (q en mi devC++ funciona) pero el juez me da error de compilación. Probé otros códigos simples y me pasa lo mismo. ¿Alguien sabe como solucionar esto?
Adjunto el código por las dudas, pero repito en mi compu funciona.

    # include <iostream >
using namespace std ;
int main ()
{
	int valor;
	cout<<"ingrese su edad";
	cin>>valor;
	if ((valor >=18)&&(valor<=65)){
		cout<<"debe votar";}
		if ((valor>65)||((valor<18)&&(valor>=16))){
			cout<<"opcional";}
			if ((valor<16)||(valor>=99)){
				cout<<"no es posible votar a esa edad";
			}
}

Saludos.


#2

¡Hola!

Lo único que le veo como para que no compile (y en mi compu no compila así como está), es que la primera línea tiene solo un #include <iostream > con un espacio. Cambiando por #include <iostream> sin el espacio, ese código me compila bien.

Por otro lado para publicar código en el foro y que quede lindo te recomiendo el post excelente que hizo Guty: Formato y Escritura en el Foro

Ahí por ejemplo se explica que con tres comillas invertidas ``` se pueden hacer bloques de código fuente y que quede lindo. Ya edité el post para que se vea bien el código, rodeándolo entre tres comillas invertidas.


#3

Muchas gracias ya funciona. Tengo otra duda ¿porque saque 0/100 si cuando ingreso un numero me lo clasifica? ¿El juez se apega a un prototipo de resolución?


#4

No, el juez corrige por entrada salida. Es un robot automático que mira la salida del programa para las entradas (fijas) de prueba, y pone puntaje en base a eso, sin importar cómo sea el programa, solo lo que muestra por pantalla.

Ahora bien, deberías sacarle el mensaje de texto “para humanos” que dice “ingrese su edad”, etc. Ya que el juez es un robot que va y se fija que la salida del programa sea exactamente la que figura en el enunciado. Como en el enunciado no figuran esos mensajes, considera un error que figuren en la salida del programa. Un humano sabría “ignorar” esos mensajes porque se da cuenta que son texto, pero la computadora correctora automáticamente no lo hace.

En resumen: Para los problemas del juez online, la salida del programa deben ser exactamente los datos que pide el enunciado. Si el enunciado pide un mensaje, van con mensaje, pero en la gran mayoría de los datos no se pide ningún mensaje, solo el numerito o resultado (lo que aquí es el “debe votar”, pero no en cambio el “ingrese su edad”).

También, deberías asegurarte de que los mensajes que muestra tu programa sean tal cual lo dice el enunciado, incluso tienen que coincidir en mayúsculas minúsculas y espacios. Esto porque de vuelta, corrige una computadora automáticamente sin intervención humana, y no se da cuenta de que estas cosas “no son un error grave”, es a todo o nada.