Кресты / Говнокод #3482 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
void check( const elemType eps = std::numeric_limits<elemType>::epsilon() ){
      count = 4;
      int isAB=0, isAC=0, isAD=0, isBC=0, isBD=0, isCD=0;
      if(A==B) isAB = 1;
      if(A==C) isAC = 1;
      if(A==D) isAD = 1;
      if(B==C) isBC = 1;
      if(B==D) isBD = 1;
      if(C==D) isCD = 1;
      if(isAB) {B=C;C=D;--count;}
      if(isAC) {C=D;--count;}
      if(isAD) {--count;}
      if(isBC) {C=D;--count;}
      if(isBD) {--count;}
      if(isCD) {--count;}
      if(count<3){std::cerr <<"Warning: Bad Frame.\n";}
   }

Есть структура. В ней четыре поля. Два любых поля могут совпадать, могут не совпадать. Если два поля совпадают, то лишнее нужно удалить и установить счетчик в 3. Если больше двух полей совпадают сообщить об ошибке. Как это попроще (покрасивше) это сделать в стиле cpp?

Запостил: blackhearted blackhearted, (Updated )

Комментарии (84) RSS

  • Помоему неплохо. Лучше не сделаешь ни на каком языке. Суровые реалии жизни. Разве что по массивам это распихать.
    Ответить
      • ты пидорас? A, B, C и тд запихнуть в один массив и алгоритм выльется в пару строчек.
        Ответить
          • про себя смолчу, а вот ты или умственно отсталый(раз говоришь об этом в каждом треде как тараторка) или имеешь гомосексуальные наклонности(все время думаешь об этой своей проблеме и проецируешь на других)
            Ответить
            • Иметь гомосексуальные наклонности это плохо?
              Ответить
              • А в чём разница между гомосексуальными наклонностями и гомосексуальными склонностями?
                Ответить
                • Ты школота пришел сюда про своих дружков-пидарков обсуждать?
                  Пиздуй на двач блин, нефига тут тролей плодить.
                  Тут люди про компьютеры разговаривают.
                  Ответить
                  • Вспомнился анекдот весьма старый, сейчас его уже не понимают:)

                    Пpогpаммеpы квасят на пpиpоде. Идут pазговоpы, тpали-вали...
                    Один pассказывает:
                    - Познакомился тут с девушкой на дискотеке! Бесподобная деваха!
                    И фигуpка, и мозги есть, и танцует хоpошо! Так вот, pешил pickup'нуть ее к себе домой. Пpигласил, она согласилась. Пpишли, выпили винца, поговоpили о том, о сем, музыку послушали. Потом я ее поцеловал, пpиподнял аккуpатно, посадил задницей на клавиатуpу, поднял юбку...
                    Остальные:
                    - Так у тебя контупеp дома стоит?!?! А какой???
                    Ответить
                    • Да уж знаете, лучше я послушаю про компьютеры, чем про гомосексуальные похождения вебкилла... Превратил сайт в черте-что... клоун
                      Ответить
                    • >Пpогpаммеpы квасят на пpиpоде.
                      Программеры висят на говнокоде.
                      Ответить
                        • купи плейбой. там так же, только дольше и без компьютера.
                          Ответить
                          • в компьютере можно заценить как японки например ссут друг другу в рот, а в плейбое скукота
                            Ответить
  • Складывается устойчивое впечатление что автор написал задание, которое ему задали и хочет чтобы ему его тут решили.
    Ответить
    • сху*ли бы?
      я этот шедевр на rsdn увидел. И никакого мне решения нахрен не нужно.
      Ответить
  • >Как это попроще (покрасивше) это сделать в стиле cpp?

    разгоняешься и в стену
    ты спалился, урсус
    Ответить
                  • некрасиво здесь постить код, который является бояном... уверен что большинство здесь сидит на рсдн, и уже обосрали этот код там...
                    Ответить
                    • Не могу, сука, передать, как меня, блять, бесят люди, которые пишут в форумы, блоги, каменты и почту слово "Баян!".

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

                      Приходят, блять, в каменты и гордо печатают: "Баянищще!" или "Да этому сто лет уже". Ну и хуй с ним. Да хоть, сука, триста.

                      Эти пидарасы являются идеальными одноразовыми потребителями. С утра увидели что-то, посмотрели, а к обеду любая ссылка на это что-то уже считается баяном. Чтоб у вас клавиатуры сгорели, уебаны!

                      Самое главное, что многие, кто дал на что-нибудь ссылку, и кому тут же в каменты насыпали "баян, баян", замыкаются и впредь боятся писать о чем-либо. Правильная реакция должна быть такой: "Баян? Ну и пошел нахуй, пидарас!" Тогда уже баянист задумается - а стоит ли в следующий раз вафельницу раззявать.
                      Ответить
                      • а теперь задумайся своим огромным и глупым мозгом, зачем искать код где-то на рсдн, который обосрал весь рсдн, потом постить сюда, где пол рсдна будут тупо копипастить свои коменты... зачем гонять воздух туда сюда, открой любой свой проект, там уникального говна в каждом файле хватает...
                        Ответить
                    • Сука, пиздец, как меня бесят тупые уепки, которые все время пишут "баян", увидев что-то, что они видели только что две минуты назад в другом месте.

                      Идите нахуй, пидарасы.

                      Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй дважды.

                      Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй трижды.

                      Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй четырежды.

                      Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй пятижды.

                      Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй итакдалеежды.
                      Ответить
                      • for(int i=1;i<+infinum;++i)
                        {
                        Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй i.
                        };
                        Ответить
                      • Э!
                        Реквестирую цикл!

                        PS. Ой, опоздал, только прочел, что уже есть.
                        PPS. Согласен, вообще. Не знаю, что за РВСН, но мне понравилось.
                        Но тут как всегда, есть два подхода к представлению информации... И, соответственно, адепты.
                        Ответить
                      • Ты ещё циклами не научился полсоваться. Плять.
                        Ответить
                      • Страйкер, забань этого имбицила малолетнего. Утомил уже
                        Ответить
                        • Зачем его банить? Лучше наоборот сделать ему отдельный раздел (типа стока, но персональный). С утра на уебкилушку посморел - на весь день радость.
                          Ответить
                          • неплохая мысль - в резервацию,
                            но кажись он ненастоящий
                            хоть и радует перлами
                            Ответить
                              • да. пока действуют транквилизаторы, его интеллект времена достигает среднестатистического интеллекта примата: может есть без посторонней помощи, срать в коментах, гуглить и википедствовать, коллегия врачей это считает прорывом локального масштаба.
                                Ответить
  • ну что вы стебетесь?
    сделайте пацану лабу, парашу же схватит за девятый класс по информатике!
    Ответить
  • int k = (A==B)+(A==C)+(A==D)+(B==C)+(B==D)+(C==D );
    if (k>=2) {ShowError}
    else if (k==1) {
    if (A==D || B == D || C == D) Delete(D)
    else if (A==C || B == C) Delete(C)
    else if (A == B) Delete(B);
    }
    Ответить
          • Я просто мечтаю покраснеть, но укажи строчку, которая должна вызвать приступ стыда.
            Ответить
            • for (size_t i=0;i<count-1;++i)
                for (size_t j=i+1;j<count;++j)
                  while (ABCD[i]==ABCD[j] && j!=count)
                    for (size_t k=j;k<count-1;++k)

              Это, видимо, шутка?
              Ответить
              • Ну ладно, признаю, четыре цикла - перебор. Вечером писал, уставший. Кстати, напишите короче и понятнее, мне правда интересно.
                Ответить
                • можно сначала отсортировать потом удалить повторяющиеся... алгоритм станет нестабильным но должен быть быстрее...
                  Ответить
                  • Отсортировать? Быстрее? С чего бы? Сортировка - лишнаяя работа тут, с ней в принципе быстрее не будет. Я уж не говорю про то, что на массиве из 4х элементов накладные расходы будут, мягко говоря, заметны. Не, если заботиться о производительности, то код ТС лучше (я проверял).
                    Ответить
                    • твои первые 2 цикла это сортировка которую тут недавно обсуждали, она отработает за O(n log n)...
                      удаление лишних это O(n) а у тебя O( n log n ) + O(n/2)...
                      Ответить
                    • хотя нет... по моему я неправильно расчитал сложность твоего удаления...
                      объясни плз что происходит в 3 и 4 цикле...
                      Ответить
                      • Первые два цикла ищут все перестановки из двух элементов без учёта порядка. Пока элементы в перестановке равны, на есто второго сдвигаем хвост последовательности и уменьшаем длину. Сначала вместо while был if.
                        Ответить
                        • можно не сдвигать, а записывать туда последний (не стабильный, О(1))...
                          либо удалить все одинаковые элементы за один проход (стабильный, О(M))
                          твой вариант удаления O(M log M)...
                          где M = count - j, в среднем N/2...

                          есть еще такой вариант:
                          проход по всем элементам
                          удаление дальше по массиву таких же элементов
                          свойства: стабильный, сложность в худшем случае О(n log n) если нечего удалять...
                          Ответить
  • По крайней мере
    bool isAB=false, isAC=false, isAD=false, isBC=false, isBD=false, isCD=false;
    будет выглядеть покрасивше.

    А ещё лучше:
    bool isAB=(A==B), isAC=(A==C), isAD=(A==D), isBC=(B==C), isBD=(B==D), isCD=(C==D);
    это плюс оптимизация инициализаций.

    Но лучше, чем реализация с четырьмя циклами не придумаешь.
    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8