Решаем задачи Абрамян на C. Array97

Array97. Дан целочисленный массив размера $$N$$. Удалить из массива все одинаковые элементы, оставив их последние вхождения.

Решение:

Другие задачи из раздела Array можно посмотреть здесь.

Комментарии:

Комментарии 6

  • А я-то думаю, почему мои студенты всякую туфту мне подсовывают?
    Оказывается, они её с этого сайта дуют.
    1) Выше приведённый код ГРЯЗНЫЙ. Индекс ПЕРВОГО элемента массива в Си ВСЕГДА НОЛЬ.
    Индекс последнего всегда на единицу меньше размера массива. В приведённом коде НЕ ТАК.
    2) Да и задача решается «с точностью до наоборот».
    Остаются не ПОСЛЕДНИЕ, а ПЕРВЫЕ вхождения дубликатов значений элементов.

    • Ой, как приятно, что мой блог посещают даже преподователи. Спасибо, что написали.:)

      Про студентов… они же и мне ничего не писали, что им двойки ставят за эти задания… так что ну этих двоишников. 🙂
      1) мм… полностью согласен, но есть но… цитата из задачника:

      » В тех языках, в которых нижний индекс массива жестко задан и равен ну-
      лю (например, С++), можно просто «игнорировать» элемент массива с индек-
      сом 0. Например, массив A размера 10 можно описать как массив, состоящий из
      11 элементов, а данные в него вводить, начиная с элемента A[1]. При этом
      элемент A[0] оказывается «невостребованным» (хотя в некоторых алгоритмах
      он может пригодится в качестве вспомогательного «барьерного» элемента).»

      Есть конечно и продолжение:
      » Впрочем, для того, чтобы не нарушать стиль программирования, принятый в
      языках с жестко заданной нижней границей индексов, можно «примириться» с
      несогласованностью индексов и порядковых номеров элементов массивов и
      учитывать эту несогласованность при программной реализации алгоритмов.»

      Но так как этот код я перевожу с pascal (со своих же решений). Решил, чтоб не путаться, буду игнорирую первый элемент массива. Так как мне это удобней.

      И вы первый кому это не нравилось. 🙂

      2) Да, задача не правильно решена… завтра всё поправлю…

      PS. простите, что вам приходиться проверять мои корявые решения, я обещаю исправиться.

    • Поправил код:
      Было:

      Стало:

    • И если вам не сложно подскажите, как вы интерпретируете задание http://coolcode.ru/reshaem-zadachi-abramyan-na-c-array11/ ? какие элементы массива(в коде) надо вывести при k=2 ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *