Question 5: fix a function [7.5]

The function below does not do what the comments say it should.
Fix the function appropriately to match the comments.
(Do NOT alter the comments.)
// this function sorts the three parameters so that
//    the smallest value winds up in a, the largest in c,
//    and the "mid" value in b
void sort(int &a, int &b, int &c)
{
   int small, middle, large;

   // find the smallest
   if (a < b) small = a;
   else small = b;
   if (small > c) small = c;

   // find the largest 
   if (a > b) large = a;
   else large = b;
   if (large < c) large = c;

   // find the middle value
   if (small < a < large) middle = a;
   else if (small < b < large) middle = b;
   else middle = c;

   // put the values in the right parameters
   a = small;
   b = middle;
   c = large;
}

SAMPLE SOLUTION
the only changes needed are to the segment computing the
    middle value

   // find the middle value
   if ((small < a) && (a < large)) middle = a;
   else if ((small < b) && (b < large)) middle = b;
   else middle = c;

(if you also went through adding the { and } brackets
    enclosing the bodies of the if/else segments
    that is perfectly acceptable)