using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace c_xuexi
{
internal class Program
{
/// <summary>
/// 根据索引值,向数组中填加一个元素。
/// </summary>
/// <param name="ar"></param>
/// <param name="k"></param>
/// <param name="v"></param>
/// <returns></returns>
public static int[] arraaa(int[] ar, int k, int v)
{
//int[] ar = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 11 22 33 44 55 66 77 88 99
// 11 22 33 678 44 55 66 77 88 99
// 0 1 2 3 | 4 5 6 7 8 9
//新建一个新数组
//老数组的索引最大值 等于 老数组-1
//如果k大于等于0 并且 k小于等于数组的长度-1
//循环 把老数组的值 加到 新数组。
//循环时 判断 把填加的值 加到新数组中去。
//否则 提示插入的数组索引 不符合要求
//循环时 如果 k <= i 3<= 0 1 2 3 新数组[i] = 老数组的[i]
//否则 如果 k == i 新数组[i] = v
//否则 如果 i>k 4 5 6 7 8 9 新数组[i] = 老数组[i]
//否则 提示插入的索引超出数组的限标。
//arraaa(ar,3,678);
int[] newar = new int[ar.Length+1];
int lar = ar.Length - 1;
int larage = ar.Length + 1;
if (k >= 0 && k <= ar.Length + 1) //3>=0 3<=9
{
for (int i = 0; i < newar.Length; i++)
{
if (k > i) //3 > i 0 1 2 3
{ // 3 < 0 1 2
newar[i] = ar[i];
}
else if (k == i) //3 == 3
{
newar[i] = v;
}
else if (k < i ) // 3 < 4 5 6 7 8 9 3==ar.length+1
{
newar[i] = ar[i-1]; //新换新数组
//Console.WriteLine(newar[i]);
}
}
}
else {
Console.WriteLine("插入的索引超过数组的下标");
}
return newar;
}
static void Main(string[] args)
{
//
//int[] ar = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//int k = 2;
//int v = 99;
//int[] ara = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//ara[0] = 111;
//for (int i = 0; i < ara.Length; i++)
//{
// Console.WriteLine(ara[i] + "\n");
//}
int[] ar = { 11, 22, 33, 44, 55, 66,77, 88, 99 };
int[]nArray = arraaa(ar, 3, 698);
for (int i = 0;i < nArray.Length;i++)
{
Console.WriteLine(nArray[i] + "\n");
}
}
}
}