好吧,我正在尝试编写一个程序,如果你在数组中添加例如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;
}
}
}
}
}
答案 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。您的代码没有按照您的想法执行。我建议你离开电脑一会儿,用文字写 你想要完成的事情。尽可能详细地描述解决方案的每个步骤。然后看看你的单词与你编写的代码是如何匹配的。你可能会发现你不需要嵌套循环。