while(i--)
  y[x] = ++x;

最初i=3 x=0 だったらどうなるの?