How to find the median among three given numbers in Swift

1 Answer

0 votes
import Foundation

/*
    Computes the median of three integers.
    The median is the value that is neither the minimum nor the maximum.

    Formula:
      median = a + b + c - min(a, b, c) - max(a, b, c)
*/
func medianOfThreeNumbers(_ a: Int, _ b: Int, _ c: Int) -> Int {
    // Determine the minimum of the three numbers
    let minVal: Int
    if a <= b && a <= c {
        minVal = a
    } else if b <= a && b <= c {
        minVal = b
    } else {
        minVal = c
    }

    // Determine the maximum of the three numbers
    let maxVal: Int
    if a >= b && a >= c {
        maxVal = a
    } else if b >= a && b >= c {
        maxVal = b
    } else {
        maxVal = c
    }

    // The median is the remaining value
    return a + b + c - minVal - maxVal
}

// Test cases
print("The median of [1, 1, 1] is \(medianOfThreeNumbers(1, 1, 1))")
print("The median of [10, 3, 7] is \(medianOfThreeNumbers(10, 3, 7))")
print("The median of [10, -10, -10] is \(medianOfThreeNumbers(10, -10, -10))")
print("The median of [3, 3, 5] is \(medianOfThreeNumbers(3, 3, 5))")



/*
run:

The median of [1, 1, 1] is 1
The median of [10, 3, 7] is 7
The median of [10, -10, -10] is -10
The median of [3, 3, 5] is 3

*/

 



answered Mar 26 by avibootz
...