>> for(i=numDigits;i>=0;i--)
Why does this attempt to go backwards when the other code all goes forward? You are starting one place too early here.

Also, in your Print function you aren't using i at all in the loops, you are just printing the last digit over and over.