我在课堂上遇到了问题,为了解决这个问题,我不能使用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.感谢您的帮助.
这最多可以达到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)