Немного сложно следовать вашей логике.Честно говоря, я не уверен, что понимаю, что вы пытались сделать, но я думаю, что вы в основном ошибаетесь.
Давайте возьмем ваш main()
, например:
Сначала вы создаете массив int
, который называется Tab
и содержит значения высоты.Никаких проблем с этим.
int[] Tab = new int[8] { 25000, 50000, 75000, 100000, 125000, 150000, 175000, 200000 };
Давайте теперь поговорим о вашем цикле for (int i = 0; i < 8; i++)
.Вот что вы делаете в цикле в первый раз, когда i
равен 0:
Прежде всего, делая это: int[] a_shaped = new int[Tab[i]];
вы создаете другой массив int
, называемый a_shaped
и имеет размер int
, найденный по индексу i
в Tab
.В общем, вы создаете массив размером 25000.
Затем вы пытаетесь отсортировать этот массив a_shaped
, передавая функцию CocktailSort
.Но вы никогда не инициализировали его, поэтому ваш массив a_shaped
содержит 25000 целых чисел, равных нулю.
Затем, наконец, вы печатаете содержимое a_shaped
со следующими строками:
foreach (int a in a_shaped)
Console.WriteLine(a);
Это печатает 25000 целых чисел, содержащихся в a_shape
, которые все равны нулю.Это заставило вас думать, что это был бесконечный цикл или ошибка, но это не так.Это просто печать всех 0, содержащихся в a_shape
, как вы и просили.
Вывод:
Независимо от того, что вы думаете, что делаете, это не так.Вы показываете функцию static void A_shaped(int[] Tab)
, но вы никогда не вызывали ее.Вы просто создали переменную , которая называется почти так же, как a_shaped
.Вы также забыли инициализировать его и дали ему размер, который вы, вероятно, не хотели бы иметь.И затем, печатая эти огромные массивы, заполненные 0, вы думали, что столкнулись с бесконечным циклом, но вы печатали тонны нуля.
Без обид, но я бы посоветовал вам сначала потренироваться в более простых программах, чтобывыучи язык, а потом возвращайся к этому.