#c#
Вопрос:
private void btn_Click(object sender, EventArgs e)
{
int quantity = Convert.ToInt32(txtseq.Text);
int[] array = new int[lbox.Items.Count];
if (txtseq.Text.Length > 0)
{
for (int i = 2; i < array.Length; i )
{
array[0] = 0;
array[1] = 1;
array[i] = array[i--] array[i];
lbox.Items.Add(array[0].ToString() array[1].ToString() array[i].ToString());
}
}
else
MessageBox.Show("Insert something first");
}
Пытаюсь сгенерировать последовательность фибоначчи и отправить ее в элемент списка, однако я не понимаю, почему она не добавляется в список в качестве элемента в поле для
Комментарии:
1. что ты получаешь? вы получаете сообщение об ошибке? также это WPF, Windows Forms? нам нужно больше деталей
2. это приложение в форме Windows, в котором пользователь вводит в текстовое поле количество элементов, которое он хочет в последовательности Фибоначчи, после нажатия кнопки оно добавляется в список
3. Когда вы запускаете свою программу, у вас, вероятно, нет никаких элементов в списке. Таким образом
int[] array = new int[lbox.Items.Count];
, будет создан массив длины0
(потомуlbox.Items.Count
что есть0
. Таким образомfor (int i = 2; i < array.Length; i )
, тело цикла не будет выполнено, потому что условие2 < 0
неверно. Вы, вероятно, хотите использоватьfor (int i = 2; i< quantity; i )
вместо этого4. Кроме того, в вашем цикле у вас есть
array[i--]
. Это (как только цикл будет выполнен) приведет к бесконечному циклу, потомуi--
что уменьшается значениеi
, вместе сi
тем, в голове цикла, вашi
никогда не растет, таким образом, ваше состояние цикла никогда не станетfalse
. Вы, вероятно, хотитеarray[i] = array[i-1] array[i-2]
вместо этого5. Ах, и, конечно, вы также должны инициализировать свой массив размером
quantity
ieint[] array = new int[quantity]