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:
un ejemplo mas concreto:
Dulces Lunas!¡.
			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:
Código (c) [Seleccionar] 
#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!¡.