I think that's about one of the worst examples of use/abuse of the conditional operator I could think of. Sure it's legal C, but IMHO it adds nothing to readability and only serves to obfuscate. Added to that one of the expressions has a side effect (printing to the LCD).
No wonder the OP was confused...
Normally you'd see it replacing code like this...
if (a >= b)
max = a;
max = b;
Which you can write more compactly as...
max = (a >= b) ? a : b;
Edit: It's A ternary operator (the only one C has) and not THE ternary operator. Ternary just means 3 arguments, as compared to the more usual binary (two arguments, +, *, > etc) and unary (!, ~, etc) that we are used to.