problema con el operador condicional ? en C

Iniciado por higor24, 15 Noviembre 2010, 17:04 PM

0 Miembros y 1 Visitante están viendo este tema.

higor24

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

Akai

#1
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)

leogtz

El fallo está en el scanf(), no usas el operador &.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

higor24

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