C 反向数算法错误

C 反向数算法错误,c,numbers,reverse,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); getc

我正试图写一个程序来反转一个数字

这是我的密码:

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”是从哪里来的。有人能帮忙吗?

在使用前将
rev
初始化为零

语句
rev=rev*10+rem
使用
rev
的值,该值是垃圾


int rev=0

使用前将
rev
初始化为零

语句
rev=rev*10+rem
使用
rev
的值,该值是垃圾


int rev=0

使用前将
rev
初始化为零

语句
rev=rev*10+rem
使用
rev
的值,该值是垃圾


int rev=0

使用前将
rev
初始化为零

语句
rev=rev*10+rem
使用
rev
的值,该值是垃圾

int rev=0

您不想要吗

rev=num*10+rem

因为如前所述,rev没有初始化

你不想要吗

rev=num*10+rem

因为如前所述,rev没有初始化

你不想要吗

rev=num*10+rem

因为如前所述,rev没有初始化

你不想要吗

rev=num*10+rem


因为如前所述,rev没有初始化

您没有将
rev
初始化为0Tip:compilewith
-Wall
并注意警告。您没有将
rev
初始化为0Tip:compilewith
-Wall
并注意警告。您没有将
rev
初始化为0Tip:compilewith
-Wall
并注意警告。您没有将
rev
初始化为0Tip:用
-Wall
编译并注意警告。那是行不通的。嗯,它会做一些正确的事情,但与OP想要做的事情不一样。那是行不通的。嗯,它会做一些正确的事情,但与OP想要做的事情不一样。那是行不通的。嗯,它会做一些正确的事情,但与OP想要做的事情不一样。那是行不通的。嗯,它会做一些正确的事情,但与OP想要做的事情不同。