Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
C#编程基础089课-编程题-插入
神杀枪发起了话题2022-08-01
3
回复
568
浏览

string str = Console.ReadLine();
            string[] strArray = str.Split(" ");
            int[] intArray = new int[strArray.Length];
            for(int i = 0; i < strArray.Length; i++)
            {
                int number = Convert.ToInt32(strArray[i]);
                intArray[i] = number;
            }
            int x = Convert.ToInt32(Console.ReadLine());
            int m = 0;
            bool find = false;
            for (int i = 0; i < intArray.Length - 1; i++)
            {
                if (x >= intArray[i] && x <= intArray[i + 1]) ;
                {
                    m = i;
                    find = true;
                    break;
                }
                if (find == false)
                {
                    m = intArray.Length - 1;
                }
            }
            int[] intArrayNew = new int[intArray.Length + 1];
            for (int i = 0; i < m + 1; i++)
            {
                intArrayNew[i] = intArray[i];
            }
            intArrayNew[m + 1] = x;
            for(int i=m+1;i< intArray.Length; i++)
            {
                intArrayNew[i + 1] = intArray[i];
            }
            foreach(int temp in intArrayNew)
            {
                Console.Write(temp + " ");
            }

老师我这个就是按照视频上的代码敲的,可是找不到错误在哪。

现在运行起来的问题就是,他不是插入到我想要的位置,而是插入到第二个位置。

貌似最后m=1了?

 

所有回复
  • siki 2022-08-02

     for (int i = 0; i < m + 1; i++)
                {
                    intArrayNew[i] = intArray[i];
                }
                intArrayNew[m + 1] = x;
                for(int i=m+1;i< intArray.Length; i++)
                {
                    intArrayNew[i + 1] = intArray[i];
                }

     

    通过代码看不出来什么问题,可以通过断点,看下这两个循环的执行过程,通过执行过程看下为什么插入的位置不对

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2022-08-02

    没有解决的话 可以通过QQ 804632564查看下

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!