反向数字算法Bug

时间:2014-01-19 11:26:39

标签: c numbers reverse

我正在尝试编写一个程序来反转一个数字。

这是我的代码:

int num, rev, rem;
printf("Input a number: ");
scanf("%d", &num);
while (num != 0)
{
    rem = num % 10;
    num = (num - rem) / 10;
    rev = rev * 10 + rem;
}
printf("\n\nThe reverse number form is: %d.\n\n", rev);
getch();

问题在于:

输入一个数字:123
反面形式是8321。

我不知道'8'来自哪里。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

使用前将rev初始化为零

语句rev = rev * 10 + rem;使用垃圾的rev值。

int rev =0 ;

答案 1 :(得分:0)

你不想要

  

rev = num * 10 + rem;

因为如前所述,rev未初始化..