Почему треугольник Паскаля проявляется в выводе моего массива (не предназначен)? - PullRequest
0 голосов
/ 29 ноября 2009

У меня проблема с получением программой сборки Pep / 8 для получения правильного результата. Цель состоит в том, чтобы ввести число n , за которым следуют цифры n , и затем в выходных данных поместить первое число в конец массива. Пример ввода и правильного вывода выглядит следующим образом:

"Три числа из которых 1,2 и 3 находятся в массиве." Ввод: 3 1 2 3

"Первое число в массиве 1 помещается в конец массива." Правильный вывод: 2 3 1

Мой вход и выход:

Ввод: 3 1 2 3 Неверный вывод: 2 2 1 Желаемый вывод: 2 3 1

Ввод: 4 1 2 3 4 Неверный вывод: 2 3 3 1 Желаемый вывод: 2 3 4 1

Ввод: 5 1 2 3 4 5 Неверный вывод: 2 3 3 4 1 Желаемый выход: 2 3 4 5 1

Три части моего кода сборки можно увидеть по адресу: http://militarystudents.files.wordpress.com/2009/11/pic1of3.png http://militarystudents.files.wordpress.com/2009/11/pic2of3.png http://militarystudents.files.wordpress.com/2009/11/pic3of3.png

Вывод для n = 1 и n = 2 выводится правильно. Для n > 2 вывод, кажется, повторяет часть моего ввода. Я использую глобальный массив список . Любая информация будет принята с благодарностью.

1 Ответ

2 голосов
/ 29 ноября 2009

Я не знаю PEP8, однако, я могу сказать несколько вещей из вашей опубликованной информации:

  1. Это не треугольник Паскаля, ничего не добавляется вместе, поскольку выходы не имеют новых (больших) значений, они являются только копиями входных значений в неправильном порядке и количестве.

  2. Это похоже на ошибку в том, как вы реализовали алгоритм ротации списков. Не зная PEP8, я не могу сказать, в чем ошибка, но вот правильный алгоритм:

    а. Скопировать список (0) в tmp

    B. Для i = 1 до N-1:

    (1) Скопировать список (i) в список (i-1)

    C. Скопировать tmp в список (N-1)

Если бы я догадался, была ли ошибка, я бы сказал, что она находится на шаге "B.", так как кажется, что ваш цикл завершается раньше, чем должно, так что одно или несколько более поздних значений не скопировано вперед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...