answersLogoWhite

0


Best Answer

Use the median-of-three algorithm:

int min (int a, int b) { return a<b?a:b; }

int max (int a, int b) { return a<b?b:a; }

int median_of_three (int a, int b, int c) { return max (min (a, b), min (max (a, b), c)); }

Note that the algorithm does not cater for equal values which creates a problem when any two values are equal, because there are only two values to play with, neither of which can be regarded as being the middle value. If the equal value is the lower of the two values, the largest value is returned if and only if it is the last of the three values, otherwise the lowest value is returned. But when the equal value is the larger of the two values, the largest value is always returned.

Lowest value is equal:

Input: 0, 0, 1 = max (min (0, 0), min (max (0, 0), 1)) = max (0, min (0, 1)) = max (0, 1) = 1

Input: 0, 1, 0 = max (min (0, 1), min (max (0, 1), 0)) = max (0, min (1, 0)) = max (0, 0) = 0

Input: 1, 0, 0 = max (min (1, 0), min (max (1, 0), 0)) = max (0, min (1, 0)) = max (0, 0) = 0

Highest value is equal:

Input: 0, 1, 1 = max (min (0, 1), min (max (0, 1), 1)) = max (0, min (1, 1)) = max (0, 1) = 1

Input: 1, 0, 1 = max (min (1, 0), min (max (1, 0), 1)) = max (0, min (1, 1)) = max (0, 1) = 1

Input: 1, 1, 0 = max (min (1, 1), min (max (1, 1), 0)) = max (1, min (1, 0)) = max (1, 0) = 1

The only way to resolve this problem and produce a consistent result is to sum all three inputs then subtract the minimum and maximum values:

int median_of_three (int a, int b, int c) { return a + b + c - min (min (a, b), c) - max (max (a, b), c)); }

Lowest value is equal:

Input: 0, 0, 1 = 0 + 0 + 1 - min (min (0, 0), 1) - max (max (0, 0), 1) = 1 - 0 - 1 = 0

Input: 0, 1, 0 = 0 + 1 + 0 - min (min (0, 1), 0) - max (max (0, 1), 0) = 1 - 0 - 1 = 0

Input: 1, 0, 0 = 1 + 0 + 0 - min (min (1, 0), 0) - max (max (1, 0), 0) = 1 - 0 - 1 = 0

Highest value is equal:

Input: 0, 1, 1 = 0 + 1 + 1 - min (min (0, 1), 1) - max (max (0, 1), 1) = 2 - 0 - 1 = 1

Input: 1, 0, 1 = 1 + 0 + 1 - min (min (1, 0), 1) - max (max (1, 0), 1) = 2 - 0 - 1 = 1

Input: 1, 1, 0 = 1 + 1 + 0 - min (min (1, 1), 0) - max (max (1, 1), 0) = 2 - 0 - 1 = 1

This makes sense because when we sort 0, 0, 1 in ascending order, 0 is in the middle, while 0, 1, 1 puts 1 in the middle.

User Avatar

Wiki User

7y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: How do you get the middle value of 3 integers in Dev C plus plus?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What are the objects used in dev c plus plus?

Objects in Dev C++ are the same as objects in generic C++, insofar as an object is an instance of a class.


What is the difference of C to C plus plus and Dev C?

C and C++ are both programming languages whereas Dev C++ is an implementation of C/C++. Dev C++ is free, was written in Delphi and includes the MinGW compiler.


Which is better dev c plus plus or Microsoft Visual C plus plus 2008 Express Edition?

Dev c++ is a good tool, but it's outdated. VS is the best for software development especially with shareware license.


Formula for z-test?

The z score is calculated from the distance of a value from the distribution center divided by the standard dev. (x-xbar)/st. dev


How do you draw in Dev c plus plus?

Download and install the WinBGIM Devpack. Once installed, you can include graphics.h to draw graphics.


How do you clear the screen in Dev C plus plus compiler?

Clearing screen in DEV C++ compiler :#includeint main(){system("cls");}OR: Permanent solution :-Paste the following text in "C:\Dev-Cpp\include\conio.h" of your system#include#includevoid clrscr(){system("cls");}Then you can use clrscr() as a normal built in function under !!!!!!!!!!!


What nicknames did Dev Anand go by?

Dev Anand's full name is Dharam Dev Anand


Is dev c plus plus same as turbo c plus plus?

No. Turbo C++ is a commercial product that once belonged to Borland Codegear, but is now owned by Embarcadero Technologies, and is now known as Embarcadero C++ Builder. Dev C++ was an open-source project originally developed by Bloodshed Software until 2005. In 2011, the project was taken over by Johan Mes Orwell and is now known as wxDev C++. Dev C++ was originally developed with Delphi, another product once owned by Borland, and is the only real connection between the two.


What is the abbreviation for 'development'?

The abbreviation is "DEV"


What caste is dev surname?

DEV surname are Ramgarhias.


Does Dev die in choti bahu?

ya.....dev died....;'( ;'( ;'( :( :(


Is kesha realated to dev?

No. Dev is not related to Kesha Serbert.