使用数组的简单C#程序会引发错误

时间:2018-01-20 18:17:29

标签: c# arrays arraylist

好吧,我正在尝试编写一个程序,如果你在数组中添加例如3个整数,让我们说3 2 1,它会在它之后再添加它们,所以它变成321 321。

这是我需要修复的代码。抱歉这个愚蠢的问题我是数组的初学者。

我收到此错误

  

索引超出了数组的范围

我的代码:

using System;

public class Program
{
    public static void Main()
    {
        int arraylength = int.Parse(Console.ReadLine());
        int[] array = new int[arraylength];

        for (int i = 0; i < arraylength + 1 / 2; i++)
        {
            int typed = int.Parse(Console.ReadLine());
            array[i] = typed;

            if (i == arraylength / 2)
            {
                for (int a = arraylength + 1 / 2; a < arraylength + 1; a++)
                {
                    array[a] = typed;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

C#中的数组索引从0开始,到length - 1结束。您需要从每个for循环条件中删除+ 1

for (int i = 0; i < arraylenght / 2; i++)

for (int a = (arraylenght + 1) / 2; a < arraylenght; a++)

我还建议您将arraylenght更改为arraylength。由于您每次使用它时都可能自动完成此操作,因此拼写错误在整个代码中始终如一,并且编译器已满足。然而,拼写错误使人类难以阅读您的代码。

P.S。您的代码没有按照您的想法执行。我建议你离开电脑一会儿,用文字写 你想要完成的事情。尽可能详细地描述解决方案的每个步骤。然后看看你的单词与你编写的代码是如何匹配的。你可能会发现你不需要嵌套循环。