一道关于反向输出数字的题?

#include
int main(void)
{
int x, y;
while (scanf_s("%d", &x) != EOF)
{
if (x > 0)
{
y = x % 10;
if (y == 0)
{
printf("");
x = x / 10;
}
else
{
printf("%d", y);
x = x / 10;
}
while (x > 0)
{
y = x % 10;
printf("%d", y);
x = x / 10;
}
}
else if(x<0)
{
x = -x;
printf("-");
y = x % 10;
if (y == 0)
{
printf("");
x = x / 10;
}
else
{
printf("%d", y);
x = x / 10;
}
while (x > 0)
{
y = x % 10;
printf("%d", y);
x = x / 10;
}
}
else
{
printf("%d", x);
}
}
return 0;
}

是一道求反向输出数字的题,想问一下哪里有问题或者是哪里需要改进?感觉拿vs好像没有什么问题。。

为啥一个反向输出被你写得要发疯的感觉啊

可以简化一下。
int main(void)
{
    int x, y;
    while (scanf_s("%d", &x) != EOF)  //输入范围:INT_MIN<= x <=INT_MAX
    {
        if (x < 0)
        {
            printf("-");
            x = -x;
        }
        while (x > 9)
        {
            printf("%d", x % 10);
            x /= 10;
        }
        printf("%d\n", x);
    }
    return 0;
}