在不使用内置反向功能的情况下反转C中的数字

Mic*_*ter 2 c

我在课堂上遇到了问题,为了解决这个问题,我不能使用c中已经存在的内置函数.它必须是执行操作的算法.我的功能如下:

int reverseDigits(int userNumber)
{

    int rev1, rev2, rev3, rev4, reverseNumber;

    rev1 = userNumber/1000;

    rev2 = (userNumber - (rev1 * 1000)) / 100;

    rev3 = (userNumber - ((rev1 * 1000) + ( rev2 * 100))) / 10;

    rev4 = (userNumber - ((rev1 *1000) + (rev2 * 100) + (rev3 * 10))) / 1;


    if (rev1 == 0 && rev2 >= 1)
    {
        reverseNumber = ((rev2 *100) + (rev3 *10) + (rev1 * 1));
        return reverseNumber;
    }

    else if (rev2 == 0 && rev3 >= 1)
    {
        reverseNumber = ((rev3 * 10) + (rev1 * 1));
    }

    else if (rev3 == 0 && rev4 >= 1)
    {
        reverseNumber = (rev4 * 1);
    }

    else 
    {
        reverseNumber = ((rev4 * 1000) + (rev3 * 100) + (rev2 * 10) + (rev1 * 1));
        return reverseNumber;
    }


}
Run Code Online (Sandbox Code Playgroud)

该函数获取用户输入并将其反转.我的问题是,当给出任何小于4位数的数字(它只应该接收4位数)时,该函数会正确返回它们但它会添加零.例如,我发送它678它将返回8760或57将是7500.感谢您的帮助.

ama*_*eka 6

这最多可以达到9位数.

int reverse(int num)
{
    int res = 0, tmp;
    while(num != 0)
    {
        tmp = num % 10;
        res = res*10 + tmp;
        num /= 10;
    }
    return res;
}
Run Code Online (Sandbox Code Playgroud)