gpt4 book ai didi

c - 在不使用内置反向函数的情况下反转 C 中的数字

转载 作者:行者123 更新时间:2023-12-04 11:18:03 27 4
gpt4 key购买 nike

我在类里面遇到了一个问题,为了解决这个问题,我不能使用 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;
}


}

该函数获取用户输入并将其反转。我的问题是,当给定任何少于 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;
}

关于c - 在不使用内置反向函数的情况下反转 C 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37947887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com