Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: higor24 en 15 Noviembre 2010, 17:04 PM

Título: problema con el operador condicional ? en C
Publicado por: higor24 en 15 Noviembre 2010, 17:04 PM
Buenas, estoy intentando crear un programa en el que el usuario entre X numero y éste le devuelva su valor absoluto, usando el operador condicional ?. Pero no se porque no me funciona :S


#include <stdio.h>
main()
{
   int a, b;
   float c;
   printf("Introduce un numero y te dire su valor absoluto ");
   scanf("%d", a);
   c = a * -1;
   b = (a>0) ? a : c;
   printf("El valor absoluto es %d", b);
}


Si alguien me dice que es lo que falla, lo agradeceria :P
Título: Re: problema con el operador condicional ? en C
Publicado por: Akai en 15 Noviembre 2010, 17:22 PM
el fallo en si es el uso que le das al operador. funciona de la siguiente forma

expresion1 ? expresion2:expresion3

si expresion 1 --> cierta
expresion2
sino
expresion3

En tu caso, vendría a ser:

a>0 ? b=a : b=c;

http://es.wikipedia.org/wiki/Operador_ternario

Por cierto: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

El 5º punto de ese post te puede venir bien mirarlo (entre otras cosas del post)
Título: Re: problema con el operador condicional ? en C
Publicado por: leogtz en 15 Noviembre 2010, 17:37 PM
El fallo está en el scanf(), no usas el operador &.
Título: Re: problema con el operador condicional ? en C
Publicado por: higor24 en 15 Noviembre 2010, 21:17 PM
Cita de: Leo Gutiérrez. en 15 Noviembre 2010, 17:37 PM
El fallo está en el scanf(), no usas el operador &.

Que error mas tonto...:D Solucionado, gracias