Foro de elhacker.net

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

Código:
#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
El fallo está en el scanf(), no usas el operador &.

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