#c# #arrays #loops
#c# #массивы #циклы
Вопрос:
Я пытаюсь поместить целое число внутрь массива путем вычитания инициализированного значения в каждом цикле. Этот код кажется мне правильным, но компилятор всегда утверждает, что «Индекс находился за пределами массива».. Я делаю здесь что-то не так, особенно в части itr?
static void Main()
{
int itr = 0;
int[] arr = {};
for(int i = 2305; i > 0; i-=576)
{
arr[itr] = i;
itr =1;
}
Console.ReadLine();
}
Комментарии:
1. Как вы думаете, каков размер / длина вашего массива
arr
? (Подсказка: проверьте значениеarr.Length
)2. размер массива равен 4, но внутри цикла он равен 5? Я пытался вычитать индекс на 1 в каждом цикле, но все равно это не работает
3. «размер массива равен 4» откуда вы это знаете? (Подсказка: согласно коду в вашем вопросе, это не …)
Ответ №1:
Эта строка создает пустой массив (поэтому Length
равно 0):
int[] arr = {};
Вы должны указать размер для вашего массива.В вашем случае размер может быть:
int[] arr = new int[2305 / 576 1];
Ответ №2:
Ваш массив int ‘arr’ имеет длину 0; Поскольку вы не задаете размер или значения для него, массив вообще не имеет значения.
это итерация, которая будет работать;
int[] arr = new int[ 1000 ];
int itr = 2305;
for ( int i = arr.Length-1; i > -1; i-- ) {
itr -= 576;
arr[ i ] = itr;
}