题目:
有n(n<=100)个整数,已经按照从⼩到⼤顺序排列好,现在另外给⼀个整数x,请将该数插⼊到序列中,并使新的序列仍然有序。输出新的序列。
样例输入:10 20 30 40 50 15 样例输出:1- 15 20 30 40 50
class Program{static void Main(string[] args){string str = Console.ReadLine();// 输入有序数组// 将字符数组转换为整数数组string[] strArray = str.Split(' ');int[] intArray = new int[strArray.Length];for (int i = 0; i < strArray.Length; i++){int num = Convert.ToInt32(strArray[i]);intArray[i] = num; // 赋值}// 给的整数xint x = Convert.ToInt32(Console.ReadLine());int nIndex = intArray.Length - 1;// 假设索引是最后一位for (int i = 0; i < intArray.Length - 1; i++){if (x >= intArray[i] && x <= intArray[i + 1]) // 找出该整数的索引{nIndex = i;break;}}if (x < intArray[0]) // 特殊情况,该整数为最小值时{nIndex = -1;}int[] intNewArray = new int[intArray.Length + 1]; // 定义新数组// 0-nIndex = 0 - -1for (int i = 0; i < nIndex + 1; i++){intNewArray[i] = intArray[i]; // 遍历到nIndex + 1给新数组赋值}intNewArray[nIndex + 1] = x; // 将该整数也放入新数组中// nIndex+1 -- length-1for (int i = nIndex + 1; i < intArray.Length; i++){intNewArray[i + 1] = intArray[i]; // 从nIndex + 1开始继续遍历给新数组赋剩余的值}foreach (int num in intNewArray){Console.Write(num + " ");// 输出新的有序数组}}}