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

    +81

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int bin_search(int *A, int key, int low, int high){
      if (low > high){
          return 0;
      }
      int mid = ( low + high ) / 2;
      if (A[mid] == key)
        return mid+1;
      else if( A[mid] < key)
        bin_search(A, key, mid + 1, high);
      else if (A[mid] > key)
        bin_search(A, key, low, mid - 1);
    }
    
    int main()
    {
        int n, k;
        cin >> k >> n;
        int A[n-1];
        for (int i = 0; i < n; i++)
        {
            cin >> A[i];
        }
            cout << bin_search(A, k, 0, n);
    }

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

    aesc_smirnov, 26 Сентября 2013

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

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    #if defined(_WIN32) || defined(_WIN64)
         size_t size = message.size();
         size_t size_buf = 1015;
    
         size_t pointer = 0;
         for (int i = 0; i < (size/size_buf) + 1 ; i++){
             
             /*Делаем для красивого вывода. Пробел всегда один байт.
              *Потому сматываем указатель буфера до первого пробела.*/
             int buf = size_buf;
             while (message[pointer+buf] != ' ')
                 buf--;
             
             /*Здесь лечится косяк MinGw, буфер принимает по 1к байтов.
              *Лечение производим создавая дополнительные буферы.*/
             istringstream ss(message.substr(pointer,buf) );
             std::cout << ss.rdbuf();
             
             pointer += buf;
         }
    #else
         std::cout << message;
    #endif

    Похоже плохая сборка MinGw.
    http://govnokod.ru/13094

    crastinus, 26 Сентября 2013

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

    +21

    1. 1
    2. 2
    3. 3
    for (size_t index = 0; index != size; ++size) {
    ...
    }

    Устраняю последствия ночного кодинга

    Setry, 23 Сентября 2013

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

    +8

    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
    if (dequeueBuffer_) {
        delete dequeueBuffer_;
        dequeueBuffer_ = NULL;
      }
    
      if (enqueueBuffer_) {
        delete enqueueBuffer_;
        enqueueBuffer_ = NULL;
      }
    
      if (readBuff_) {
        delete[] readBuff_;
        readBuff_ = NULL;
      }
    
      if (currentEvent_) {
        delete currentEvent_;
        currentEvent_ = NULL;
      }

    Apache Thrift 0.9.1, made in Facebook
    Код в деструкторе:

    Fogbit, 19 Сентября 2013

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

    +3

    1. 1
    CBinarySemaphore _there_is_only_one;//Highlander.

    laMer007, 17 Сентября 2013

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

    −11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Point ReadPoint ()
    {
    	Fixed x = ReadFixed();
    	Fixed y = ReadFixed();
    	return Point(x,y);
    }

    Как же меня бесит отсутствие чётко определённого стандартом порядка вычисления аргументов!!!!!!!

    TarasB, 17 Сентября 2013

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

    +11

    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
    AbstractMessageFrame * DataLength = create_frame(
    		make_condition_reader(this,
    			fnc_ext::bind(
    				fnc_ext::compose1(
    					fnc_ext::compose2(std::logical_or<bool>(),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::MARKER_SYMBOL),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::SPACE_SYMBOL)),
    					fnc_ext::mem_fun<const ByteBuffer, const byte&>(&ByteBuffer::back) ),
    				&_receivedBuffer),
    			fnc_ext::bind(
    				fnc_ext::compose2(std::logical_or<bool>(),
    								  fnc_ext::compose1(std::bind2nd(std::greater<WORD>(),
    																 PC5000FlashFeatures::LENGTH_HEADER +
    																 _maxCommandFieldLength +
    																 PC5000FlashFeatures::LENGTH_MARKER +
    																 PC5000FlashFeatures::LENGTH_OF_LENGTH),
    													fnc_ext::mem_fun(&ByteBuffer::length)),
    								  fnc_ext::compose1(fnc_ext::compose2(std::logical_and<bool>(),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isDigit)),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isEnglishLetter))),
    													fnc_ext::mem_fun<const abstractBuffer<unsigned char>, const byte&>(&ByteBuffer::back)) ),
    				&_receivedBuffer) ),
    		fnc_ext::bind(std::mem_fun(&ThisClass::setDataLength), this),
    		"Data Length");

    Композиции, частичные применения, функторы? Больше тотальной функциональщины! Вложенность продолжает расти с развитием проекта.

    laMer007, 17 Сентября 2013

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

    −4

    1. 1
    2. 2
    // please don't change this
    #define NUM_INVISIBLE_TYPES 1

    Выдержка из исходников civilization 5.

    Да, да, прекрасно, усложняйте моддинг

    kindofbear, 16 Сентября 2013

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

    +69

    1. 1
    С ДНЕМ МУДАКОВ ЗАДРОТЫ АЗАЗАЗА

    13 СИНТЯБРЯ ДЕНЬ ЛАХОВ И ЗАДРОТАВ
    p.s. мне всево 7 лет и у миня есть ifon 5

    PragramistOtBoga, 13 Сентября 2013

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

    +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
    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
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    #include "stdafx.h"
    #include <windows.h>
    #include <iostream>
    #include <stdio.h>
    #include <conio.h>
    using namespace std;
    
    class pop
    {
    public:
    char groupp[10];
    char alb[10];
    char name[10];
    pop vvod()
    {
    pop v;
    cin » v.groupp;
    cin » v.alb;
    cin » v.name;
    return v;
    }
    void vivod(pop v)
    {
    cout « v.groupp, "\n";
    cout « v.alb, "\n";
    cout « v.name, "\n";
    }
    };
    void main()
    {
    char a;
    int b=1;
    pop v;
    while(b!=0)
    { 
    cout « "vvodite";
    cin »a;
    switch ( a )
    {
    case '1':
    {
    v=v.vvod();
    b=1;
    break;
    }
    case '2':
    {
    v.vivod(v);
    b=1;
    break;
    }
    default :
    {
    system("cls");
    b=0;
    }
    }
    }
    
    }

    high-five, 11 Сентября 2013

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