ЙАЖА / Говнокод #26825 Ссылка на оригинал

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
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
System.out.println("\nNames in alphabetical order: ");
             if(name1.compareTo(name2) > 0) {
                        if(name2.compareTo(name3) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name3,
                                                name2,
                                                name1); //cba 2
                        }
                        else if(name3.compareTo(name2) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name2,
                                                name3,
                                                name1); //bca 3
                        }
                }
                else if(name2.compareTo(name1) > 0) {
                        if(name1.compareTo(name3) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name3,
                                                name1, 
                                                name2); //cab 1
                        }
                        else if(name3.compareTo(name1) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name1,
                                                name3,
                                                name2); //acb 5
                        }
                }//bac i abc
                else if(name3.compareTo(name1) > 0) {
                        if(name1.compareTo(name2) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name2,
                                                name1,
                                                name3);
                        }
                        else if(name2.compareTo(name1) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name1,
                                                name2,
                                                name3);
                        }
                }

Снова пытался отсортировать три строки по алфавиту.
У меня опять получилась вместо нескольких строк простыня.
Что со мной не так?
Но, по крайней мере, она работает как надо.

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

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

    • Оно и не будет работать, потому что двух сравнений не всегда недостаточно.

      Если a < b и с < b, то может так оказаться, что c лежит на промежутке от a до b, а может оказаться, что c лежит левее a.

      В общем случае нужно три сравнения.
      Ответить
  • > Что со мной не так?
    Ты пытаешься решить задачу «в лоб», не пытаясь разделить её на подзадачи. Программирование так не работает.

    Отсортируй пять строк и подумай, что ты делаешь со своей жизнью как можно решить эту проблему иначе.
    Ответить
    • Спасибо.
      Эта задача из книги. В тех главах, что я прошел - не было упоминаний ни о циклах, ни о массивах и т. п. Я думал, что смысл задачи именно в том, чтобы сделать без всех этих штук.

      Sorted Names (Starting out with java. From control structures through Data Structures, Tony Gardis. p. 331)
      Write a program that asks the user to enter three names, and then displays the names sorted in ascending order. For example? if the user entered "Charlie", "Leslie", and "Andy", the program would display:
      Andy
      Charlie
      Leslie
      Ответить
  • import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Ideone {
        public static void main (String[] args) throws java.lang.Exception {
            String pituh1 = "Kokoko";
            String pituh2 = "Kudkudah";
            String pituh3 = "Kukareku";
    
            int order = (pituh1.compareTo(pituh2) > 0 ? 1 : 0)
                      | (pituh2.compareTo(pituh3) > 0 ? 1 : 0) << 1
                      | (pituh3.compareTo(pituh1) > 0 ? 1 : 0) << 2;
    
            switch(order) {
                case 0:  System.out.printf("%s\n", "Kakoi bagor)))"); break;
                case 1:  System.out.printf("%s\n%s\n%s\n", pituh2, pituh3, pituh1); break;
                case 2:  System.out.printf("%s\n%s\n%s\n", pituh3, pituh1, pituh2); break;
                case 3:  System.out.printf("%s\n%s\n%s\n", pituh3, pituh2, pituh1); break;
                case 4:  System.out.printf("%s\n%s\n%s\n", pituh1, pituh2, pituh3); break;
                case 5:  System.out.printf("%s\n%s\n%s\n", pituh2, pituh1, pituh3); break;
                case 6:  System.out.printf("%s\n%s\n%s\n", pituh1, pituh2, pituh2); break;
                case 7:  System.out.printf("%s\n", "Kakoi bagor)))"); break;
            }
        }
    }


    https://ideone.com/jDEi8Z
    Ответить
    • а что будет, если вдруг в чешуе, как жар горя, тридцать-три петуха случится?
      Ответить
      • Проведём 1/16 финала, 1/8 финала, четвертьфинал, полуфинал, выжившие попадут в финал.
        Ответить
        • хорошее решение

          Можно его распаралеллить еще. Мап питуз
          Ответить
          • Для начала задачу нужно с «name1», «name2», «name3» переписать на массивы или на «коллекции всякие там, листы». А дальше использовать любой алгоритм сортировки. Для тридцати трёх петухов за эффективностью алгоритма можно не гнаться.
            Ответить
    • Спасибо. Интересный код, смешной.
      Эта задача из книги. В тех главах, что я прошел - не было упоминаний ни о циклах, ни о массивах и т. п. Я думал, что смысл задачи именно в том, чтобы сделать без всех этих штук.

      Sorted Names (Starting out with java. From control structures through Data Structures, Tony Gardis. p. 331)
      Write a program that asks the user to enter three names, and then displays the names sorted in ascending order. For example? if the user entered "Charlie", "Leslie", and "Andy", the program would display:
      Andy
      Charlie
      Leslie
      Ответить
  • А вы массив проходили уже? А коллекции всякие там, листы?
    Ответить
    • Нет, не проходил. Эта задача из книги. В тех главах, что я прошел - не было упоминаний ни о циклах, ни о массивах и т. п. Я думал, что смысл задачи именно в том, чтобы сделать без всех этих штук.

      Sorted Names (Starting out with java. From control structures through Data Structures, Tony Gardis. p. 331)
      Write a program that asks the user to enter three names, and then displays the names sorted in ascending order. For example? if the user entered "Charlie", "Leslie", and "Andy", the program would display:
      Andy
      Charlie
      Leslie
      Ответить
      • Чтобы расставить A, B, и C в порядке неубывания, нужно сравнить
        A и B
        B и C
        Результаты этих сравнений
        то-есть три шага.


        Но как-то странно заниматься такими вещами не изучив сначала массив:)
        Ответить
        • В Джаве просто сразу дают решать энтерпрайзные задачи, а не вот эти твои массивы колупать. Это серьёзный язык, он когда-то на трёх миллиардах устройств был установлен!
          Ответить
          • Тогда надо начинать с серьезных задач, а не с сортировки.

            Глава первая: Менеджер инъекций зависимостей в абстрактную фабрику стратегий и делегаты
            Ответить
          • Просто в Йажа массивы плохо зделаны тупо.
            Немогли зделать всё как в C++!!! И сравнения и управление. Не рекоминдую такую Йажу!!!
            Ответить
              • Рекомендую четвертую йажу: без генериков, енумов и функци-анальщины.
                Очень полезно для внимательности
                Ответить
              • Йажа ведь обыкновенно делается в Калифорнии; и прескверно делается. Я удивляюсь, как не обратит на это внимание ECMA. Делает её хромой бочар, и видно, что дурак, никакого понятия не имеет о Йаже.
                Ответить
    • Просто очень много низкоквалифицированных специалистов пошли работать в СМИ. Хорошо, хоть исправили.

      Правда, кое-какая дичь осталась:

      Во второй десятке самых востребованных профессий оказались инженеры, слесари, Data-аналитики, продавцы, кадровые специалисты и конструкторы.

      А конструкторы это не инженеры? И в нашей классификации программисты это тоже инженеры. Или имеются в виду те engineers, которые машинисты поездов?
      Ответить
      • В последней версии так:

        грузчики,
        программисты,
        разработчики программного обеспечения,
        водители,
        Ответить
        • водители
          шофёры
          операторы баранки
          крутилы круглой штуки
          наездники
          Ответить
          • Кстати, а define "высоковалифицрованный"?

            Как понять: я выскоко или низко?
            Ответить
            • >Как понять: я выскоко или низко?
              Чем выше взбирается Макака, тем лучше видна её питушня.
              Ответить
            • Ты сам себя как специалист удовлетворяешь? Остальное волновать не должно в принципе
              Ответить
              • Понятия не имею

                На фоне обычного быдлокодера с галер я вроде ничо, но некоторые треды на говнокод.ру заставляют меня думать, что мне следовало бы знать больше
                Ответить
                • > но некоторые треды на говнокод.ру заставляют меня думать, что мне следовало бы знать больше
                  Не беспокойся, даже сами K&R были бы озадачены ворец-тредами.
                  Ответить
      • >инженегры

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

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

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

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


    8