Civil Engineering Mechanical Engineering Chemical Engineering Networking Database Questions Computer Science Basic Electronics Digital Electronics Electronic Devices Circuit Simulation Electrical Enigneering Engineering Mechanics Technical Drawing

# C Programming - Expressions - Discussion

@ : Home > C Programming > Expressions > General Questions - Discussion

"It takes a very long time to become young."
- Pablo Picasso
3.

Which of the following is the correct usage of conditional operators used in C?

 [A]. a>b ? c=30 : c=40; [B]. a>b ? c=30; [C]. max = a>b ? a>c?a:c:b>c?b:c [D]. return (a>b)?(a:b)

Explanation:

Option A: assignment statements are always return in paranthesis in the case of conditional operator. It should be a>b? (c=30):(c=40);

Option B: it is syntatically wrong.

Option D: syntatically wrong, it should be return(a>b ? a:b);

Option C: it uses nested conditional operator, this is logic for finding greatest number out of three numbers.

 Afsheen said: (Mon, Jul 19, 2010 02:24:33 AM) If b>c then b is true else c is true, so 1st b>c is evaluated and stored then a>c is evaluated and stored. now the whole expression is considered. Let us assume (i) in b>c case this stmnt is true so b is saved. (ii)in a>c case this stmnt is false so c is saved. now the expression is in the form max=a>b?c:b Now finally this is evaluated. you just assume the given stmnt as a>b?(a>c?a:c):(b>c?b:c). I hope you understood.

 Durga said: (Wed, May 11, 2011 02:36:05 AM) I am not under stand please clear about it. In detailed because I don't know how to use ? opearator. So plese clear with a example how to use this operator.

 Ramu said: (Mon, Aug 1, 2011 10:19:58 PM) Simply we have to think in general if..else format like if(a>b) { if(a>c) max is a else max is c } else if(b>c) max is b else max is c This is implemented , thinking in this we could easily analyse for greatest of 3 or 4 or 5 and so on easily I think so.

 Vishwas Pathak said: (Sun, Aug 28, 2011 06:07:48 PM) Option A is also right i did it in the dev-c++ and i got first one as the answer.