欢迎光临散文网 会员登陆 & 注册

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

2023-01-20 21:55 作者:此城过客  | 我要投稿


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) ; }

==============================================================


给一个有序数列插入整数,依然按序排列的评论 (共 条)

分享到微博请遵守国家法律