Петля, табуляция. Длина и бесконечно много нулей - PullRequest
0 голосов
/ 06 июня 2018

In void A_shaped() - ошибка в цикле.

Я думаю, что это проблема с переменной Tab.Length, но я не понимаю, почему.

Может кто-нибудь объяснить мне это?

При запуске программы цикл заполнен только нулем ... Чем я могу заменить эту переменную?Ниже я отправляю код на сортировку Coctail во вкладке A_shaped.Код урезан.

Извините, это мой первый пост и одна из моих первых программ.

     static void A_shaped(int[] Tab)
            {
                int j = 0;

                for (int i = 0; i < Tab.Length ; i += 2)
                {
                    Tab[j] = i;
                    j++;
                }

                for (int i = Tab.Length; i > 0; i -= 2)
                {
                    Tab[j] = i;
                    j++;
                }
            }


    static void Main(string[] args)
            {

                int[] Tab = new int[8] { 25000, 50000, 75000, 100000, 125000, 150000, 175000, 200000 };

    for (int i = 0; i < 8; i++)

    {
    int[] a_shaped = new int[Tab[i]];

                    CocktailSort(a_shaped);

                    foreach (int a in a_shaped)
                        Console.WriteLine(a);

}

1 Ответ

0 голосов
/ 06 июня 2018

Немного сложно следовать вашей логике.Честно говоря, я не уверен, что понимаю, что вы пытались сделать, но я думаю, что вы в основном ошибаетесь.

Давайте возьмем ваш 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, вы думали, что столкнулись с бесконечным циклом, но вы печатали тонны нуля.

Без обид, но я бы посоветовал вам сначала потренироваться в более простых программах, чтобывыучи язык, а потом возвращайся к этому.

...