请问怎样才能更简洁啊 我写的太长了 逆序输出问题

四位数逆序输出 若超过四位数 只截取前四位 如 输入123456 输出4321
若小于四位 则输出结果前面补零
如输入12 输出0021(主要是这里写了好多
#include
int main()
{
int x,a,b,c,d;
scanf("%d",&x);

if(x>999)
{
    if(x>9999)
        x=x%10000;

    a=x%10;
    b=x/10%10;
    c=x/100%10;
    d=x/1000;

    printf("%d",a*1000+b*100+c*10+d);
}

if(x>100&&x<1000)
{
    b=x%10;
    c=x/10%10;
    d=x/100;
    printf("0%d",b*100+c*10+d);
    }    
if(x>10&&x<100)
{
    c=x%10;
    d=x/10;
    printf("00%d",c*10+d);
    }
if(x>0&&x<10)
    printf("000%d",x);

return 0;

}

利用数组和循环可以解决你的难题

输入12 不应该输出2100?照你的如果输入0021,输出不就是1200了吗