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

1 Answer

0 votes
#include <stdio.h>

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

    Parameters:
        number   - Input number
        minDigit - Pointer to store the smallest digit
        maxDigit - Pointer to store the largest digit
*/
void findMinMaxDigits(int number, int *minDigit, int *maxDigit)
{
    *minDigit = 9;
    *maxDigit = 0;

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

        if (digit < *minDigit) {
            *minDigit = digit;
        }

        if (digit > *maxDigit) {
            *maxDigit = digit;
        }

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

int main(void)
{
    int number = 839516;
    int minDigit, maxDigit;

    findMinMaxDigits(number, &minDigit, &maxDigit);

    printf("Number: %d\n", number);
    printf("Smallest digit: %d\n", minDigit);
    printf("Largest digit: %d\n", maxDigit);

    return 0;
}



/*
run:

Number: 839516
Smallest digit: 1
Largest digit: 9

*/

 



answered 1 day ago by avibootz
...