Drill

ProblemsC++ › validation

Keep a value inside its range

easyvalidationMathC++

A slider hands back whatever the user dragged it to, and the settings layer pins it into the range the setting allows.

clampToRange(amount: int, low: int, high: int) → int

C++ needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

int clampToRange(int amount, int low, int high) {
    
}

Worked examples

CallResult
clampToRange(5, 1, 10)5
clampToRange(0, 1, 10)1
clampToRange(99, 1, 10)10
clampToRange(5, 10, 1)5

Hint

Sort the bounds first and the rest is two comparisons.

Reference solution in C++
int clampToRange(int amount, int low, int high) {
    int lo = std::min(low, high), hi = std::max(low, high);
    return std::min(hi, std::max(lo, amount));
}

The same problem in another language

More validation problems in C++