Write a function, smallest, which given positive integer n and a positive integer key returns the smallest digit in n greater than key. Your function should also work if there is no digit in n smaller than key.
#include <iostream>
using namespace std;
int smallest(int n, int k)
{
int smallestDigit = 10;
do
{
int residue = n % 10;
if (residue > k && residue < smallestDigit)
smallestDigit = residue;
} while (n = n / 10);
if (smallestDigit == 10)
smallestDigit = -1;
return smallestDigit;
}
int main()
{
cout << smallest(567, 4) << endl;
}