Autor
|
Tema: ¿Error código? (Leído 6,378 veces)
|
Constantinoplero
Desconectado
Mensajes: 346
Veni, vidi, vici
|
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: #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
Mensajes: 301
Siempre aprendiendo
|
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 #include <stdio.h> int main() { int a,b,c; if (a>b) printf("%d es mayor que %d", a ,b ); else if (a==b) printf("%d es igual que %d", a ,b ); else printf("%d es menor que %d", a ,b ); /*Línea 21*/ return 0; }
Saludos
|
|
« Última modificación: 3 Noviembre 2011, 22:32 pm por satu »
|
En línea
|
Breakbeat como forma de vida
|
|
|
;c1v!c
Desconectado
Mensajes: 151
Forma parte de esta comunidad gamer!!!
|
y el error de la linea 21 es que en lugar de "else" va "else if" o sino como dice satu! saludos! #include <stdio.h> int main() { int a,b,c; if (a>b) {printf("%d es mayor que %d", a ,b );} else if (a=b) {printf("%d es igual que %d", a ,b );} else if(a<b) { printf("%d es menor que %d", a ,b ); /*Línea 21*/} return 0; }
|
|
|
En línea
|
|
|
|
Constantinoplero
Desconectado
Mensajes: 346
Veni, vidi, vici
|
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.
|
|
|
|
|