C++,不知道哪里错了

设计一个程序,完成数据的逆序输出。从键盘输入一个三位整数,请将其逆序输出。如输入123,输出321。

#include 
using namespace std;
int main()
{
    int a,b, c, d;
    cin >> a;
    b = a / 100;
    c = (a % 100) / 10;
    d = (a % 100) % 10;
    a = d * 100 + c * 10 + b;
    cout << a << endl;
}

请问大家哪里错了


b = a / 100;
c = (a % 100) / 10;
d = a % 10;

还有个问题,比如120,逆序需不需要输出这个0,按你这算法这个0不会显示

可以考虑用

cout << d << c << a << endl;

这种方法输出,应为你那样子输出的话 比如 100,你就输出1,这样是不对的