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

    +3

    1. 1
    2. 2
    3. 3
    int main() { 
    for (float n = 0, l = 0, q = scanf("%f", &n), r = n, m = (l + r) / 2; r - l > 0.00001 || 0 * printf("%f", l); m*m <= n ? l = m : r = m, m = (l + r) / 2); 
    }

    Просто бинпоиск в одну строчку)

    AndreyZ, 25 Февраля 2016

    Комментарии (21)
  2. C++ / Говнокод #19530

    +2

    1. 1
    if ( LIKELY( _mode == normal ))

    _mode задается один раз в начале программы по конфигурационному файлу.

    govnokoderatata, 25 Февраля 2016

    Комментарии (28)
  3. C++ / Говнокод #19517

    +3

    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
    24. 24
    25. 25
    __fastcall OpenArray(T arg0, T arg1, T arg2, T arg3, T arg4, T arg5, T arg6,
    				 T arg7, T arg8, T arg9, T arg10, T arg11, T arg12,
    				 T arg13, T arg14, T arg15, T arg16, T arg17, T arg18)
    	  {
    		Array = new T[Count = 19];
    		Array[0] = arg0;
    		Array[1] = arg1;
    		Array[2] = arg2;
    		Array[3] = arg3;
    		Array[4] = arg4;
    		Array[5] = arg5;
    		Array[6] = arg6;
    		Array[7] = arg7;
    		Array[8] = arg8;
    		Array[9] = arg9;
    		Array[10] = arg10;
    		Array[11] = arg11;
    		Array[12] = arg12;
    		Array[13] = arg13;
    		Array[14] = arg14;
    		Array[15] = arg15;
    		Array[16] = arg16;
    		Array[17] = arg17;
    		Array[18] = arg18;
    	  }

    Старый недобрый C++ Builder. Выше по коду еще 17 таких же конструкторов.

    Vindicar, 24 Февраля 2016

    Комментарии (121)
  4. C++ / Говнокод #19502

    0

    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
    24. 24
    25. 25
    unsigned int FileScanner::smartBruteForce(QByteArray &haystack, QByteArray &needle)
    {
        unsigned int count = 0;
        unsigned int dataSize = haystack.size();
        unsigned int needleSize = needle.size();
        unsigned int needleSizeCut = needleSize - 1;
        char* dp = haystack.data();
        char* np = needle.data();
        char lastNeedle = *(np + needleSize - 1);
    
        for(unsigned int i = 0; i < dataSize - needleSize + 1; i++)
        {
            if(*(dp + (i + needleSizeCut)) != lastNeedle) //This is smart technology ))))
                continue;
            unsigned int j;
            for(j = 0; j < needleSize; j++)
            {
                if(*(dp + (i + j)) != *(np + j))
                    break;
            }
            if(j == needleSize)
                count++;
        }
        return count;
    }

    laMer007, 20 Февраля 2016

    Комментарии (6)
  5. C++ / Говнокод #19479

    −1

    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    bool Diagram::checkIsOverlayElements(const int index)
            {
                int _x0, _y0, _xX, _yY;
    
                int x0 = _vectorFigure[index]->getCoordinate().getX0();
                int y0 = _vectorFigure[index]->getCoordinate().getY0();
                int xX = _vectorFigure[index]->getCoordinate().getXx();
                int yY = _vectorFigure[index]->getCoordinate().getYy();
    
                for(int _index = 0; _index < _vectorFigure.size(); _index++)
                {
                    _x0 = _vectorFigure[_index]->getCoordinate().getX0();
                    _y0 = _vectorFigure[_index]->getCoordinate().getY0();
                    _xX = _vectorFigure[_index]->getCoordinate().getXx();
                    _yY = _vectorFigure[_index]->getCoordinate().getYy();
    
                    if(((x0 >= _x0 && x0 <= xX)
                        &&(y0 >= _y0 && y0 <= _yY))
                        ||((xX >= _x0 && xX <= _xX)
                            &&(yY >= _y0 && yY <= _yY))
                        ||((x0 >= _x0 && x0 <= xX)
                            &&(yY >= _y0 && y0 <= _yY))
                        ||((xX >= _x0 && xX <= _xX)
                           &&(y0 >= _y0 && yY <= _yY)))
                    {
                        return true;
                    }
                }
                return false;
            }

    Проверка наложения фигур друг на друга.

    Isaac, 17 Февраля 2016

    Комментарии (0)
  6. C++ / Говнокод #19432

    −2

    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
    int abs(int x)
    {
    	int a = x;
    	if(x >= 0) 
    	{
    		return a;
    	} 
    	else if(x < 0) 
    	{
    		a = a^2;
    		a = sqrt(a);
    		return a;
    	}
    }

    Поиск абсолютного значения числа.

    DeScWD, 11 Февраля 2016

    Комментарии (86)
  7. C++ / Говнокод #19391

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    bool matchingNumerals(int num)
    {
    QString str = QString("%1").arg(num);
        for (int i = 0; i < 10; i++)
            if (str.split(QString("%1").arg(i)).size() > 2)
                return true;
        return false;
    }

    Функция, определяющая, есть ли в числе одинаковые цифры на великой могучей Qt.

    Mongrell, 03 Февраля 2016

    Комментарии (0)
  8. C++ / Говнокод #19390

    +1

    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    // Определение метода  Q3CanvasText::text() 
    
    class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
    //...
      QString text() const;
    //...
    };
    
    // Далее уже в "моем" классе строчка:
    class CDevice : public CDiagramObject {
    // ...
    private:
      Q3CanvasText * m_pTitle;
    //....
    public:
      const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
    // ...
    };
    
    // Еще один класс и отображение тултипа при наведении
    void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
    
        if( d ) {
            QString tmp;
            if( d->group() == QString::null || d->group() == "" )
                tmp = ( d->stitle().left( d->stitle().indexOf(":") ) );  // вылетало здесь : d->stitle().indexOf(":") segmentation fault
            else
                tmp = d->group();
    //.....
            }
        }

    Нашел магию!

    Юзаю Qt 4.8.6 в Linux
    Под Виндой новая версия перепиливаемой проги компилится и работает,
    под Линухом новая версия вылетает, старая робит.

    Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.

    Но почему тот же gcc под виндой скомпилил это без багов?

    OlegUP, 03 Февраля 2016

    Комментарии (11)
  9. C++ / Говнокод #19385

    +9

    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
    int naive_show_int(int x) {
        char buf[32];
        char *p = buf + sizeof(buf);
        *--p = 0;
        int negative = 0;
        if (x < 0) {
            x = -x;
            negative = 1;
        }
        while (x > 0) {
            if (x <= 0)
                return -1;
            int digit = '0' + x % 10;
            if (digit < '0' || digit >= '9')
                return -1;
            *--p = digit;
            x /= 10;
        }
        if (negative)
            *--p = '-';
        puts(p);
        return 0;
    }

    Допустишь один UB - ничто уже не спасёт твою прогу...

    http://ideone.com/EFGoBi

    bormand, 02 Февраля 2016

    Комментарии (37)
  10. C++ / Говнокод #19382

    −1

    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
    #include <iostream>
    using namespace std;
    
    auto print(auto arg)
    {
    	return (cout<<arg);
    	//return cout;
    }
    auto print(auto arg, auto... args)
    {
    	return (print(args...)<<arg);
    	//return cout;
    }
    
    int main() {
    	print(1,"ko")<<"ok";
    	return 0;
    }

    https://ideone.com/YvoHi3
    ГЦЦ так и не научился в возвращаемые значения с авто

    laMer007, 02 Февраля 2016

    Комментарии (12)