Do you see how swap() might have been implemented so that it can be called with swap(c,b,k)?

Presumably the other options did not send swap() enough (or the right kind of) "information" for it to...