How to find the smallest and largest digits in a number in C++

1 Answer

0 votes
#include <iostream>
#include <cstdlib> // for std::abs

/*
    Finds the smallest and largest digits in a number.

    Parameters:
        number     - Input integer
        smallest   - Stores the smallest digit
        largest    - Stores the largest digit
*/
void findMinMaxDigits(int number, int& smallest, int& largest)
{
    // Handle negative numbers
    number = abs(number);

    // Special case: number is 0
    if (number == 0) {
        smallest = largest = 0;
        return;
    }

    smallest = 9;
    largest = 0;

    while (number > 0)
    {
        int digit = number % 10; // Extract last digit

        if (digit < smallest)
            smallest = digit;

        if (digit > largest)
            largest = digit;

        number /= 10; // Remove last digit
    }
}

int main()
{
    int number = 839516;

    int smallest, largest;

    findMinMaxDigits(number, smallest, largest);

    std::cout << "Smallest digit: " << smallest << std::endl;
    std::cout << "Largest digit : " << largest << std::endl;
}


/*
run:

Smallest digit: 1
Largest digit : 9

*/

 



answered 1 day ago by avibootz
...