elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Error código?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Error código?  (Leído 6,378 veces)
Constantinoplero


Desconectado Desconectado

Mensajes: 346


Veni, vidi, vici


Ver Perfil WWW
¿Error código?
« en: 3 Noviembre 2011, 21:30 pm »

Muy buenas a todos. Mi problema es que estoy programando en mi casa a un nivel muy sencillo, estudiando para la asignatura de Informática de mi Ingeniería.
El cuatrimestre que dura la asignatura lo vamos a dedicar a aprender C/C++, empezando desde cero.

El caso. Estaba ensayando con condiciones (if/else, no con switch) y se me ha ocurrido hacer un programa al que le dieras dos valores, y según los que les des, te dirá si a>b, a=b ó a<b. Son enteros.

El código es:

Código:
#include <stdio.h>

int main()

{
    int a,b,c;

    printf("Dame un valor:");
    scanf("%d", &a);

    printf("Dame un valor:");
    scanf("%d", &b);

    if (a>b)
        printf("%d es mayor que %d", a,b);

    else if (a=b)
        printf("%d es igual que %d", a,b);

    else (a<b)
        printf("%d es menor que %d", a,b); /*Línea 21*/

    return 0;
}

Al programar con CodeBlocks, me dice los errores. En la línea 21 (indicada) me dice 'Error: expected ';' before 'printf'.
Pero según mis apuntes, detras de if (x) y else (x) no puede ir un punto y coma, de hecho el programa no va bien.

¿Desde 'cuándo espera' ese ';' o por qué me dice eso?

Gracias.


« Última modificación: 3 Noviembre 2011, 22:45 pm por CarLiLlooo » En línea

Más que buenos principios prefiero mejores finales.
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: ¿Error código?
« Respuesta #1 en: 3 Noviembre 2011, 22:30 pm »

Hola

Veo  2 errores:
-Las comparaciones se hacen con == no con = (que es asignación) (linea 17)
-El error que te da es por poner else (a<b), las condiciones solo se ponen en el if no en el else, es decir, si se cumple la condición del if entra, si no se cumple entra en el else, por tanto debes quitar el (a<b) y dejar el else solo

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4.  
  5. {
  6.    int a,b,c;
  7.  
  8.    printf("Dame un valor:");
  9.    scanf("%d", &a);
  10.  
  11.    printf("Dame un valor:");
  12.    scanf("%d", &b);
  13.  
  14.    if (a>b)
  15.        printf("%d es mayor que %d", a,b);
  16.  
  17.    else if (a==b)
  18.        printf("%d es igual que %d", a,b);
  19.  
  20.    else
  21.        printf("%d es menor que %d", a,b); /*Línea 21*/
  22.  
  23.    return 0;
  24. }
  25.  

Saludos


« Última modificación: 3 Noviembre 2011, 22:32 pm por satu » En línea

Breakbeat como forma de vida
;c1v!c

Desconectado Desconectado

Mensajes: 151


Forma parte de esta comunidad gamer!!!


Ver Perfil WWW
Re: ¿Error código?
« Respuesta #2 en: 3 Noviembre 2011, 22:33 pm »

y el error de la linea 21 es que en lugar de "else" va "else if" o sino como dice satu!
saludos!

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4.  
  5. {
  6.    int a,b,c;
  7.  
  8.    printf("Dame un valor:");
  9.    scanf("%d", &a);
  10.  
  11.    printf("Dame un valor:");
  12.    scanf("%d", &b);
  13.  
  14.    if (a>b)
  15.        {printf("%d es mayor que %d", a,b);}
  16.  
  17.    else if (a=b)
  18.        {printf("%d es igual que %d", a,b);}
  19.  
  20.    else if(a<b)
  21.       { printf("%d es menor que %d", a,b); /*Línea 21*/}
  22.  
  23.    return 0;
  24. }
En línea

Constantinoplero


Desconectado Desconectado

Mensajes: 346


Veni, vidi, vici


Ver Perfil WWW
Re: ¿Error código?
« Respuesta #3 en: 3 Noviembre 2011, 22:39 pm »

Lo primero que muchas gracias a los dos.

@satu: El primer error se me ha pasado por completo y no debería haberme pasado, el segundo después de decírmelo tú tiene toda la lógica del mundo...

@;c1v!c: Antes de poner 'else' a secas puse 'else if' pero no iba. No me daba errores ni warnigs, simplemente cuando a era menor que b decía que los dos eran iguales (que es la condición de arriba justamente).
Añado que creo que ese error era por no usar bien los signos '=' para la comparación, y no por lo del else if. Efectivamente era eso.

Gracias de nuevo.
« Última modificación: 3 Noviembre 2011, 22:42 pm por CarLiLlooo » En línea

Más que buenos principios prefiero mejores finales.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error de código
.NET (C#, VB.NET, ASP)
doggyinline 9 10,170 Último mensaje 12 Abril 2008, 22:01 pm
por elmaro
error en codigo
Programación Visual Basic
elguast 3 2,218 Último mensaje 27 Junio 2008, 19:58 pm
por elguast
Error en Nautilus-data. Codigo de salida error 1.
GNU/Linux
lilo. 2 5,163 Último mensaje 29 Enero 2011, 03:49 am
por RyogiShiki
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines