1. C++ / Говнокод #145

    −59.6

    1. 1
    2. 2
    3. 3
    4. 4
    if( a < 10 ) cout << "a < 10";
    else if( a > 10 ) cout << "a > 10";
    else if( a == 10 ) cout << "a == 10";
    else cout << "Сегодня совсем плохой день :(";

    Совсем плохой день :(

    Запостил: guest, 13 Декабря 2008

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

    • абсолютно корректный код. тем, кто не согласен -- марш в институт и читать Макконела
      Ответить
    • страйко:
      раскройте?
      по-моему последний else никогда не выполнится и в этом говнокод? Или что-то не так?
      Ответить
    • Михалыч:
      ну последнее никада не выполнится, а в остальном нормальный код ))))
      Ответить
    • Дмитрий:
      Автор с чувством юмора :)
      Код корректен.
      По поводу последнего else
      а вдруг все-таки такой день настанет :)
      Ответить
      • Теор Вер Этого не отрицает ))
        Ответить
      • Если оптимизатор компилятора не урежет это, то может произойти сбой памяти - просто заменится один бит в условном переходе.. ну дальше сами знаете -
        "Сегодня совсем плохой день :("

        Ведь не зря же есть ECC память..
        Ответить
    • Alexander G:
      #include <iostream>
      int main(int argc, char* argv[])
      {
        using std::cout;
        struct blackday {
          bool operator < (int) { return(0); }
          bool operator == (int) { return(0); }
          bool operator > (int) { return(0); }
        } a;
        if( a < 10 ) cout << "a < 10";
        else if( a > 10 ) cout << "a > 10";
        else if( a == 10 ) cout << "a == 10";
        else cout << "Сегодня совсем плохой день :(";
        return 0;
      }
      Ответить
    • Alexander G:
      Или более хардкорная версия
      #include <iostream>
      int main(int argc, char* argv[])
      {
        using std::cout;
      #define a 0&&0
        if( a < 10 ) cout << "a < 10";
        else if( a > 10 ) cout << "a > 10";
        else if( a == 10 ) cout << "a == 10";
        else cout << "Сегодня совсем плохой день :(";
        return 0;
      }
      Ответить
    • Сергеич:
      Более хардкорная версия сногсшибательна.
      Ответить
    • Alexander G:
      Ага. Но плохой день может быть ещё хуже:
      #include <iostream>
      int main(int argc, char* argv[])
      {
        using std::cout;
        struct really_bad_day
        {
          really_bad_day(std::ostream&){}
          void operator<<(char const*){}
        };
      #define else
      #define if(x) (really_bad_day)
        if( a < 10 ) cout << "a < 10";
        else if( a > 10 ) cout << "a > 10";
        else if( a == 10 ) cout << "a == 10";
        else cout << "Сегодня совсем плохой день :(";
        return 0;
      }
      Ответить
    • Звездочёт:
      Ну очень плохой день((( Вечный. Без вариантов.
      Ответить
    • лююююди, всё же проще. Напихали перегрузок =.=

      #include <iostream>
      #include <math.h>

      int main(int argc, char* argv[])
      {
      using namespace std;
      double a = 0./0.;
      if( a < 10 ) cout << "a < 10";
      else if( a > 10 ) cout << "a > 10";
      else if( a == 10 ) cout << "a == 10";
      else cout << "Сегодня совсем плохой день :(";
      return 0;
      }
      Ответить

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