为什么求整数的逆序数用这种方法最后总会多出一个1呢?

#include <stdio.h>

int reverse( int number );

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\n", reverse(n));

    return 0;
}
/* 你的代码将被嵌在这里 */
int reverse( int number ){
    if(number<0){
        number=-number;
        printf("-");
    }
   if(number==0)printf("%d",number);
   else{while(number%10==0)number/=10;
   while(number>0){
        printf("%d",number%10);
        number/=10;
        }}
        
    
}

 printf("%d\n", reverse(n));

改成

reverse(n);

你题目的解答代码如下:

#include <stdio.h>
int reverse(int number);
int main()
{
    int n;
    scanf("%d", &n);
    reverse(n);
    return 0;
}
/* 你的代码将被嵌在这里 */
int reverse(int number)
{
    if (number < 0)
    {
        number = -number;
        printf("-");
    }
    if (number == 0)
        printf("%d", number);
    else
    {
        while (number % 10 == 0)
            number /= 10;
        while (number > 0)
        {
            printf("%d", number % 10);
            number /= 10;
        }
    }
}

如有帮助,望采纳!谢谢!

printf("%d\n", reverse(n));
改为
reverse(n)
因为输出了一个返回值

只需要一个while语句。
while(number>0){
    printf("%d",number%10);
    number/=10;
   }