1. Си / Говнокод #19953

    −52

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    const char* prizes(int level, int place = 0)
    {
        switch(level){
            case 0:                              // Прошедшие квалификацию 
                return "сертификат";             // получат сертификат участника Russian Code Cup.
            case 1:                              // 200 лучших участников отборочного раунда  
                return "футболка";               // получат футболки.
            case 2:                              // Прошедшие в финал
                return "подарок";                // получат подарки.
            case 3:
                if(place == 1)                   // Призеры чемпионата
                    return "150000р";            // получат денежные призы.
                else if(place == 2)
                    return "100000р";
                else if(place == 3)
                    return "65000р";
                else if(place <= 10)
                    return "30000р";
                else if(place <= 25)
                    return "15000р";
        }
        return "";
    }

    Пусть полежит тут.

    Запостил: bot, 06 Мая 2016

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

    • Необязательные параметры в Си? Хи-хи!
      Ответить
      • Необязательные параметры в си как раз есть. Дефолтных значений нет.
        Ответить
        • > Необязательные параметры
          Это функции с переменным числом аргументов?
          Ответить
    • return ""; // А остальные сосут хуй
      Ответить
      • return NULL; // утешительный приз
        Ответить
        • Сектор null на барабане!
          Ответить
          • Буква C!
            Или это слово целиком?
            Ответить
            • Null -это не слово, это ничего
              Ответить
              • Нет, я про C думал. Это буква или слово?
                Ответить
                • Ахаха. Представил у Якубовича в поле чудес на табло одна буква
                  в итоге никто не угадал, потому что она из латиницы)
                  Ответить
                  • Чёрный ящик открывать не буду, но я думаю что это буква U+04F8.
                    Ответить
                    • >> Чёрный ящик открывать не буду

                      и тут в студию влетает BlackBoxException и начинает пиздить тройку игроков
                      Ответить
                      • ... ловится усами якубовича и попадает в хранилище, аккурат ко всем банкам с огурцами
                        Ответить
      • Блин, это же надо стараться чтоб такое получить если учавствуешь!
        Ответить
    • Где здесь говнецо, bot?

      Кстати, советую поучаствовать. Я каждый год выигрываю футболку.
      Ответить
      • Надо было prize инициализировать как INT_MAX. А то при вызове prizes(3) вернётся 30000p, чего явно не ожидалось.
        Ответить
    • case 0: // Прошедшие квалификацию
      return "сертификат"; // получат сертификат участника Russian Code Cup.
      case 1: // 200 лучших участников отборочного раунда
      return "футболка"; // получат футболки.
      case 2: // Прошедшие в финал
      return "подарок"; // получат подарки.
      case 3:

      АФУТБОЛКАБАБЛОИСЕРТИФИКАТНЕПОДАРОК?
      Ответить
    • case 3:
                  if(place == 1)                   // Призеры чемпионата
                      return "150000р";            // получат денежные призы.
                  else if(place == 2)
                      return "100000р";
                  else if(place == 3)
                      return "65000р";
                  else if(place <= 10)
                      return "30000р";
                  else if(place <= 25)
                      return "15000р";

      Автор побоялся использовать вложенный switch?
      Ответить
      • > вложенный switch?
        case 4: case 5: case 6: case 7: case 8: case 9: case 10:
            return "30000p";
        так?
        Ответить
        • case 1:
              ...
          case 2:
              ...
          default: 
              if (place <= 10)
                  ...
              else if (place < =25)
                  ...
          Ответить
          • Да, это сильно упрощает код.
            Ответить
            • То ли дело Паскаль:
              case place of
                  1:                result := '150000р';
                  2:                result := '100000р';
                  3:                result := '65000р';
                  4..10:            result := '30000р';
                  11..25:           result := '15000р';
                  else              result := 'Соснули';
              end;


              Во многих языках не хватает операций со множествами вообще и с интервалами в частности.
              Ответить
              • https://golang.org/doc/effective_go.html#switch
                func unhex(c byte) byte {
                    switch {
                    case '0' <= c && c <= '9':
                        return c - '0'
                    case 'a' <= c && c <= 'f':
                        return c - 'a' + 10
                    case 'A' <= c && c <= 'F':
                        return c - 'A' + 10
                    }
                    return 0
                }
                Ответить
                • я знал что го хороший
                  как паскаль
                  Ответить
                • Что-то мне это напоминает:
                  SELECT CASE
                      WHEN place = 1 THEN '150000р'
                      WHEN place = 2 THEN '100000р'
                      WHEN place = 3 THEN '65000р'
                      WHEN place BETWEEN 4 AND 10 THEN '30000р'
                      WHEN place BETWEEN 11 AND 25 THEN '15000р'
                      ELSE 'Соснули'
                  END;
                  Ответить
                  • Че уж мелочится

                    WITH places AS
                       (SELECT 4 AS place
                        UNION ALL
                        SELECT place + 1 AS place
                        FROM places 
                        WHERE places.place <= 25)
                    
                    SELECT *
                    FROM
                    (
                    	SELECT 1 as place, '150000p' as prize
                            UNION
                            SELECT 2 as place, '100000p' as prize
                            UNION
                            SELECT 3 as place, '65000p' as prize
                    	UNION
                    	SELECT *
                    	FROM places JOIN (SELECT '30000p' prize) t ON place<11
                    	UNION
                    	SELECT *
                    	FROM places JOIN (SELECT '15000p' prize) t ON place>10
                    ) as winners
                    WHERE winners.place = place
                    Ответить
                    • Кто ж так SQL юзает?
                      INSERT INTO prizes(level, place_min, place_max, prize) VALUES (
                          (0, NULL, NULL, "сертификат"),
                          (1, NULL, NULL, "футболка"),
                          (2, NULL, NULL, "подарок"),
                          (3, 1, 1, "150000р"),
                          (3, 2, 2, "100000р"),
                          (3, 3, 3, "65000р"),
                          (3, 4, 10, "30000р"),
                          (3, 11, 25, "15000р")
                      )
                      
                      SELECT prize
                      FROM prizes
                      WHERE
                          level = :level and
                          ((place_min IS NULL AND place_max IS NULL) or
                           (:place between place_min and place_max))
                      Ответить
                      • странный синтаксис (values ((),()) вместо values (), (); "" вместо ''), что за субд?

                        + денормализация по интервалу - да, быстрее, чем хранить лишь одну границу интервала, но чревато сюрпризами
                        Ответить
                        • > что за субд
                          СУБД называется "давненько не брал я в руки шашек". Уже год где-то к SQL не притрагивался (и слава богу)...

                          > денормализация по интервалу
                          Хуяк-хуяк и в продакшен.
                          Ответить
                      • >> level < :level


                        Потому что призеры и подарки, и майки и сертификаты тоже получат
                        Ответить
                        • Да ну? А код ОП'а говорит, что только что-то одно...
                          Ответить
                          • Код говно, недаром он тут. Сертификат-то за первое место точно выдают
                            Ответить
                    • win(0, _, "сертификат") :- !.
                      win(1, _, "футболка") :- !.
                      win(2, _, "подарок") :- !.
                      win(3, 1, "150000р") :- !.
                      win(3, 2, "100000р") :- !.
                      win(3, 3, "65000р") :- !.
                      win(3, X, "30000р") :- X =< 10, !.
                      win(3, X, "15000р") :- X =< 25, !.
                      win(_, _, "Соснули").
                      Ответить
                      • .!. - хуй
                        :- - те же яйца, только в профиль
                        !. - хуй программиста на c++
                        Ответить
                        • Ещё отличный символ есть (не из пролога): _|_
                          Ответить
                        • Карманный лев?!
                          Ответить
                          • Только я всё сижу и на солнышко гляжу!
                            Ответить
                            • Цикл "Лев, царь и платяной багор"

                              Часть 1 - лев
                              Карманный лев сидит на куче
                              И память нежно стережет
                              Как потечет - мрачнее тучи
                              Глаза красны и в пене рот
                              Одным прижком в карман влетая
                              Как будто спушен был курок
                              В яйцо впивается зубами
                              Чтоб программисту был урок
                              ***
                              Карманный лев, природы царь
                              Вам яйцы отгрызет как встарь
                              Коль память с кучи потечет
                              То член он тоже отгрызет
                              ***
                              Да хоть пиши ты на прологе
                              Валяясь голым на диване
                              Но прежде чем компилить прогу -
                              Проверь что нету льва в кармане
                              ***
                              Бичпакет не поможет, сейф стальной не спасет
                              Вне времен лев карманный - знает все наперед
                              Телепортом владеет, быстрый как солнца свет
                              Коль течет твоя память, то спасения нет
                              Ответить
                        • показать все, что скрытоvanished
                          Ответить
              • вот этого кстати в плюсах и не хватает - оператора ..
                Было б классно писать
                for (int i : 10..19)
                Ответить
                • для лаб-то?
                  если тебе мало сахарку, то посмотри boost.range
                  Ответить
                  • для свитч кейсов. Например, для парсинга NMEA пакетов с AIS очень много где бы пригодилось. Там кое-где enum'ы по 100+ значений, больше половины которых reserved for future use
                    Ответить
                    • хм
                      а их надо хардкодить в свич? почему не использовать внешний справочник (скормленный один раз при старте в *map)?
                      Ответить
                      • а какая проблема захардкодить, если уже указанные значения не меняются а новые появляются раз в декаду?
                        Ответить
    • лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба лаба
      Ответить

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