请大家看一下为什么代码里读入数字的一步被跳过了

int[] a={ 999,999,999,999,999,999,999,999,999,999};
int i,x,j,k;
for(i=0;i<a.Length;i++)
{
* Console.WriteLine("输入数字");
a[i]=Console.Read();
for(j=0;j<i;j++)
{
x=a[i];
if(a[i]<a[j])
{

                    for(k=i;k>j;k--)
                    {
                        a[k]=a[k-1];
                    }
                    a[j]=x;
                }
            }
        }

代码打星号的那一行,打出那一行字后应该会等待用户输入下一个数字才对,但是实际操作时是这样的情况:

img

那个“输入数字”被莫名其妙循环了四次而且下一行输入直接被跳过了一样

请问这个是我哪里出错了

a[i] = Console.Read();//从标准输入流读取下一个字符
#你输入34回车
#先读取3  //51
#然后再读取4   //52
#再读取回车    //13
#再读取换行    //10

//可修改为
a[i] = Convert.ToInt32(Console.ReadLine());