求解这个代码,学习一下

任意一个小于1的三位小数,按顺序打印各位,如0.368输出0 3 6 8


#include<iostream>
using namespace std;
int main()
{
    float x;//x是一个小于1的三位小数;
    int a, b, c, y;
    int d = 0;
    cin >> x;
    y = 1000 * x;
    a = y/100;
    b = (y - a * 100) / 10;
    c = y % 10;
    cout << d << " " << a << " " << b << " " << c;
    return 0;
}

```