C# 逻辑算法,根据索引值,向数组中填加一个元素。

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

            }

        }
       
    }
   
}

分类:

发表评论