Error de Compilación , ayuda.

v0rTeX

Buenas , estaba haciendo un codigo para un ejercicio de clase y lo tengo acabado pero al compilar me da un error que no entiendo y el codigo esta bien escrito , es algun error de escritura pero no lo veo.

El codigo es este :

#include <assert.h>
#include <entsort.h>

int main(void){

int a,b,c;

LlegirEnter(&a);
LlegirEnter(&b);
LlegirEnter(&c);

if (a>b>c) {
EscriureEnter(a);
EscriureEnter(b);
EscriureEnter(c);
} else if (a>c>b) {
EscriureEnter(a);
EscriureEnter(c);
EscriureEnter(b);
} else if (b>a>c) {
EscriureEnter(b);
EscriureEnter(a);
EscriureEnter(c);
} else if (b>c>a) {
EscriureEnter(b);
EscriureEnter(c);
EscriureEnter(a);
} else if (c>a>b) {
EscriureEnter(c);
EscriureEnter(a);
EscriureEnter(b);
} else if (c>b>a) {
EscriureEnter(c);
EscriureEnter(b);
EscriureEnter(a);

return 0;
}

Y los errores que me da son estos:

o1.c : In function 'main' :
o1.c:39: parse error at end of input.

Y ya esta , llevo ya un rato y no se porque me da esos errores .
Por cierto esto no son deberes , el ejercicio era solo escribir el codigo sin traducir , esto lo hago porque quiero y me jode que encima que algo que no piden no me salga xDD.

Gracias y Saludos de antemano.

P.D : Lo de los deberes iba por si alguien saltaba con lo de , si ven aqui a que te hagamos los deberes ;).

SouL

t falta una llave d cierre ·_· (o eso creo xq no estoy seguro de q lenguaje es ese xD)

Thanat0s

Esto sería el código ordenado (acostumbrate a tabularlo y poner las llaves al mismo nivel para saber cuales cierras y abres):

#include <assert.h>
#include <entsort.h>

int main(void)
{
int a,b,c;
LlegirEnter(&a);
LlegirEnter(&b);
LlegirEnter(&c);

if (a>b>c)
{
EscriureEnter(a);
EscriureEnter(b);

EscriureEnter(c);
}
else if (a>c>b)
{
EscriureEnter(a);
EscriureEnter(c);

EscriureEnter(b);
}
else if (b>a>c)
{
EscriureEnter(b);
EscriureEnter(a);
EscriureEnter(c);
}
else if (b>c>a)
{
EscriureEnter(b);
EscriureEnter(c);
EscriureEnter(a);
}
else if (c>a>b)
{
EscriureEnter(c);
EscriureEnter(a);
EscriureEnter(b);
}
else if (c>b>a)
{
EscriureEnter(c);
EscriureEnter(b);
EscriureEnter(a);
}

return 0;
}

Si no me equivoco esto es C, y en c no puedes hacer ese tipo de comparaciones en los ifs. Tus ifs deberían ser:
if ((a>b) && (b>c))

Y luego fallos que son tonterías pero que cuentan mucho para los profesores (al menos para el mio cuando estudiaba):
si a es mayor que b y b es mayor que c y haces lo que hay dentro del if... ¿para que seguir comprobando si se cumplen los demás? es perder el tiempo tanto para el usuario como para la máquina.
Quizás ahora no lo notes, pero cuando trabajes con miles de registros cosas así comen tiempo de proceso, que es inecesario.

Lo mejor es hacer ifs y elses anidados.
if ((a>b) && (b>c))
{
el codigo akí
}
else
{
if ((a>b) && (c>b))
{
codigo
}
else
{
if... etc etc
}
}

P.D: no te digo que tengas que poner el segundo if como yo lo he puesto, simplemente que sigas esa lógica :)

Editado: el foro no coge los espacios en blanco que he metido para "tabular" las llaves :(

v0rTeX

Oki , gracias ;D

P.D : Es C

SeiYa

Esas funciones que pasa, son en plan scanf y printf pero con otro idioma para que queden bonitas ? XD

P.D. por que no en vez de hacer else, y dentro meter un if ... hace todo el rato else if ? es mas comodo todavia.

JuAn4k4

Si a > b -> Si b > c , else
Si b > a -> Si a > c , else
Si c > a -> Si a > b , else

Ahi tienes todas, no ?

Thanat0s

Personalmente yo lo hago así, xq no en todos los lenguajes existe else if y si estás aprendiendo más vale saber la forma menos cómoda que la más comoda pero que luego no funcione...

v0rTeX

#5 Tengo que meterlas en catalan porque el archivo.h que hace que las llamadas a acción funcionen esta hecho en catalan.

JuAn4k4

O sino hazlo a lo pr0, haces una funcion, en C no hay procedimientos no ? con 3 datos de entrada: a , b , c, que haga: ( Aunq no devuelvas nada ) ( Es una notacion algoritmicacon algo de C ) xD

Si a>b entonces
si b > c entonces
escribir ( %d > %d > %d, a b c )
else
escribir ( %d > %d > %d, a b c )
finSi

finSi

y en el main() haces:
funcion(a,b,c)
funcion(b,a,c)
funcion(c,a,b)

y gL

Usuarios habituales

  • JuAn4k4
  • v0rTeX
  • Thanat0s
  • SeiYa
  • SouL