给一个有序数列插入整数,依然按序排列

string a = Console.ReadLine();//用字符串接收用户输入的数据
string[] b = a.Split(" ");/*创建一个字符数组,并用空格分割(用户输入的时候就得自己用空格 *隔开)*/
int[] c = new int[b.Length];//创建一个字符数组(因为要比大小,所以得用int数组)
for (int i = 0; i < b.Length; i++)//第一个循环,把字符串数组转换成数据数组
{ c[i] = Convert.ToInt32(b[i]) ; }
int num = Convert.ToInt32(Console.ReadLine());
int di = 0;/*=0是正常情况。如果输入的数,比数组所有的数都大,就要放到数组最后一位。 *那么代码就得这么写:int di = c.Length - 1 ;
*/
if (num < c[0])//假如输入的数据是0,或者说比数组所有的数都小,就执行这个。
{ di = -1 ; }
for (int i = 0; i < c.Length-1; i++)/*第二个循环,找到要插入的地方。
{ if (num >= c[i] & num <= c[i + 1] )
{ di = i ; break ;}
}
int[] d = new int[c.Length + 1];//创建一个新数组,用来接收原数组移过来的数
for (int i = 0; i < di+1; i++)//第三个循环,把第一批数据移过去。如果输入的数据是0,
{ d[i] = c[i] ; }//那么这个循环就不会执行,因为不满足条件。i=0,又要小于0,不满足。
d[di+1] = num;//把数插进去
for (int i = di+1; i < c.Length; i++)//第四个循环,把第二批数据移过去。
{ d[i + 1] = c[i] ; }//如果输入的数据是0,那么会直接执行这个循环。
foreach (int temp in d)
{ Console.Write(temp) ; }
==============================================================