The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+20 votes

Consider the following $C$ function definition

int Trial (int a, int b, int c)
    if ((a>=b) && (c<b)) return b;
    else if (a>=b) return Trial(a, c, b);
    else return Trial(b, a, c);

The functional Trial:

  1. Finds the maximum of $a$, $b$, and $c$

  2. Finds the minimum of $a$, $b$, and $c$

  3. Finds the middle number of $a$, $b$, $c$

  4. None of the above

asked in Algorithms by Veteran (52k points)
edited by | 2.7k views
if ((a>=b) && (c<b))

missing in question.

3 Answers

+47 votes
Best answer
$$\begin{array}{|l|l|l|l|} \hline \textbf{a} & \textbf{b} & \textbf{c} & \textbf{Return} \\\hline \text{1} &  \text{1} & \text{1} & \text{The final return statement is $c < b.$}\\&&&\text{ So, this never returns. } \\\hline \end{array}$$
Answer D.
answered by Veteran (406k points)
edited by
but sir there is no middle element in 111, so it wont find. what about other cases?
@Aspi this condition must also be handled by the program to guarentee that it returns a middle element for any three inputs.
it is going to infinite loop here.
what a great thinking you have ! Arjun sir
when we will take a=b=c then this program will generate infinite loop (because of b>c condition,to make it finite it should be b>=c) option D ,,,is right one
+6 votes
Trial (a,b,c) return the median element of the a , b and c , but not middle element of a , b and c ,, so answer is (D)
answered by Active (5k points)
reshown by
For 3 values on sorting them its hould be middle value, but for same input a=b=c its falling into infinite loop
How it is returning median value can you justify using options?
what is the meaning of median of a,b,c here?

If we write a,b, c in a sorted order then the number at the middle position is called Median element.

e.g. we've 3 numbers - 3 ,2 ,4

sorted order - 2 3 4 (3 is median)


+2 votes
1)First of all,in first if statement parenthesis are not balanced .so it  is Syntax error. there is no option called "syntax error".if we forget the balancing parenthesis we can move further.
2)let consider example
Trail(7,2,6) return 6
Trail(5,4,9) return 5
So from example you can conclude that it dose not return maximum or minimum or middle of element. in another case if a=b=c ,it stuck in infinite loop. so answer is d) None of the above
answered by (121 points)
edited by
but 6 is the middle of 7,2,6

and 5 is middle of 5,4,9
Yes u r right.i forgot "ordering".thank u to inform that
If we try it for a=8, b=6, c=4

it is going to produce middle element for all three cases if we can shuffle the values accordingly to check every case.

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
49,541 questions
54,093 answers
71,001 users