printf , tengo una duda

Iniciado por <<<-Basura->>>, 14 Junio 2011, 02:22 AM

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

<<<-Basura->>>

hola, bueno andube buscando en google, solo imprimir variables y ya se como hacerlo pero mi duda esta en que yo encontre una pagina donde podia poner una condicion dentro del printf, pero sin usar el "If" digamos:

Quiero imprimir A o B , pero si A es mayor que B:

printf(  "%d" . aquí hiria la condición   );

no recuerdo como era pero si ustedes saben ayudenmen, era sin usar el if
<<<--Basura-->>>

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

BlackZeroX

#2
debes usar el if corto

Condición ? EsVerdadero : esFalso

ejemplo:

variable = 5>1?10:20;

esa if lineal la puedes poner en varios lugar en donde te plazca no solo en el printf();.

por ejemplo:

Código (cpp) [Seleccionar]


if ( var > ( 10>8? 50 : 10 ) ) {  // el if lineal es este:    ( 10>8? 50 : 10 )
    ... haz algo ...
}

printf ("%s", f>10 ? &a : &b);   // el if lineal es este:  f>10 ? &a : &b
te recomiendo ponerlo entre paréntesis:

printf ("%s", ((f>10) ? &a : &b));   // el if lineal es este:  f>10 ? &a : &b

o asi:

printf ("%s",
                ((f>10) ? &a : &b)
        );   // el if lineal es este:  ((f>10) ? &a : &b)



un ejemplo mas concreto:



#include <stdio.h>

int main()
{
    int     f       = (int)getchar() - '0';
    char    c1[]    = "f es menor a 5";
    char    c2[]    = "f es igual a 5";
    char    c3[]    = "f es mayor que 5";
    printf("%d   %s",f,( f<5? c1:( f==5? c2:c3)));
    /*
        Son dos if lineales.
        printf("%d   %s",f,( f<5? c1:
                            ( f==5 ? c2:c3)
                            )
               );
    */
    getchar();
    return 0;
}


Dulces Lunas!¡.
The Dark Shadow is my passion.

<<<-Basura->>>

Bien alguien entendió lo que yo necesitaba  ;-) ;-) ;-) ;-) ;-) ;-)... gracias se te agradece!!!  :)
<<<--Basura-->>>