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

    +168

    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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    if(x>=900&&x<1000)
                    {
                            std::cout<<"DCCCC";
                            if(x==901)
                                    std::cout<<"I";
                            else if(x==902)
                                    std::cout<<"II";
                            else if(x==903)
                                    std::cout<<"III";
                            else if(x==904)
                                    std::cout<<"IV";
                            else if(x==905)
                                    std::cout<<"V";
                            else if(x==906)
                                    std::cout<<"VI";
                            else if(x==907)
                                    std::cout<<"VII";
                            else if(x==908)
                                    std::cout<<"VIII";
                            else if(x==909)
                                    std::cout<<"IX";
                            if(x==910)
                            {
                                    std::cout<<"X";
                                    if(x==911)
                                            std::cout<<"I";
                                    else if(x==912)
                                            std::cout<<"II";
                                    else if(x==913)
                                            std::cout<<"III";
                                    else if(x==914)
                                            std::cout<<"IV";
                                    else if(x==915)
                                            std::cout<<"V";
                                    else if(x==916)
                                            std::cout<<"VI";
                                    else if(x==917)
                                            std::cout<<"VII";
                                    else if(x==918)
                                            std::cout<<"VIII";
                                    else if(x==919)
                                            std::cout<<"IX";
                            }
                            else if(x==920)
                            {
                                    std::cout<<"XX";
                                    if(x==921)
                                            std::cout<<"I";
                                    else if(x==922)
                                            std::cout<<"II";
                                    else if(x==923)
                                            std::cout<<"III";
                                    else if(x==924)
                                            std::cout<<"IV";
                                    else if(x==925)
                                            std::cout<<"V";
                                    else if(x==926)
                                            std::cout<<"VI";
                                    else if(x==927)
                                            std::cout<<"VII";
                                    else if(x==928)
                                            std::cout<<"VIII";
                                    else if(x==929)
                                            std::cout<<"IX";
                            }
        //

    Перевод числа <1000 в римские цифры... Единственное, что пришло в голову с утра, тупо перебор всех значений. Соответственно так весь код. Это полный 3.14здец?

    ForEveR, 02 Августа 2010

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

    +148

    1. 1
    Block *** Cells;

    Лаконичная семантика C++.
    Глядишь на код -- и всё понятно: Cells - это указатель массива указателей на массивы указателей объектов класса Block.
    А устно с первого раза хрен выговоришь.

    maniac, 30 Июля 2010

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

    +159

    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
    void shiftOrder(int* _order, int _count, int _column)
    {
        int i=_count-1;
        while ( _order[i]!=_column )
            i--;
    
        _order[_count]=_order[i];
        memcpy( _order+i, _order+i+1, (_count-i)*sizeof(int) );
    
        return;
    }
    
    void returnOrder(int* _order, int _count, int _column)
    {
        int i=0;
        int j=0;
        int order[MAX_COLS];
    
        for ( i=0; i< _count; i++)
        {
            if ( m_ColInfo[i].visible )
            {
                order[j]=i;
                j++;
            }
        }
    
        i=j;
        while ( j<_count )
        {
            if ( _order[i-1]!=_column )
            {
                order[j]=_order[i-1];
                j++;
            }
            i++;
        }
        memcpy(_order, order, MAX_COLS*sizeof(int));
    
        return;
    }

    я знаю, это всё торфяники!1

    ilardm, 30 Июля 2010

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

    +163

    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
    long GetMicroseconds();
    
    CTvoid cLog::GetTime (char * acLocal, time_t tTime)
    {
      struct tm   ltLocalTime;
      struct tm * ptLocalTime;
    
      tTime       = time (NULL);
      ptLocalTime = localtime_r (&tTime, &ltLocalTime);
    
      sprintf(acLocal,"%04d%02d%02d %02d%02d%02d-%06ld",
                       ptLocalTime->tm_year+1900,
                       ptLocalTime->tm_mon+1,
                       ptLocalTime->tm_mday,
                       ptLocalTime->tm_hour,
                       ptLocalTime->tm_min,
                       ptLocalTime->tm_sec,
                       GetMicroseconds());
    
    }
    
    long GetMicroseconds()
    {
        struct timeval timeVal;
    
        if (0 == gettimeofday( &timeVal, NULL ))
            return timeVal.tv_usec;
    
        return -1;
    }
    
    cLog::__Write(...)
    {
        /* ... */
        tTime          = time(NULL);
        GetTime (acDataTime, tTime);
        /* ... */
    }

    R&D дали задание добавить микросекунды ко всем таймстемпам в логах.
    сказано - сделано.
    ну ведь никто не говорил что таймстемпы должны быть еще и консистентными.

    ЗЫ ну и time() надо вызвать раза два-три - для надёжности.

    Dummy00001, 28 Июля 2010

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

    +164

    1. 1
    LONG bShutdownCounter;

    Существует много баталий на тему венгерской нотации, есть много за и много против, но это - просто шедевр :)

    ryadovoy, 28 Июля 2010

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    if( ( (i&&z&&z!=1) || (!i&&z&&z==1) ) || j ) 
    {
       ...
    }

    условие

    sova, 27 Июля 2010

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    BYTE p1,p2,p3,p4;
    CString p;
    ipa.GetAddress(p1,p2,p3,p4);
    p.Format("%d.", p1);
    s = p;
    p.Format("%d.", p2);
    s += p;
    p.Format("%d.", p3);
    s += p;
    p.Format("%d", p4);
    s += p;
    AfxMessageBox(s);

    книга "Microsoft Visual Studio и MFC", автор Т. Сидорина
    ранее были объявлены
    CIPAddressCtrl ipa;
    CString s;

    s.Format ("%d.%d.%d.%d", p1, p2, p3, p4); //мы не исчем лёгких путей

    daemon_master, 23 Июля 2010

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

    +161

    1. 1
    2. 2
    width ? width-- : width;
    height ? height-- : height;

    Ахуй нехуевый. Не говнокод, наверно, но всё же.

    Altravert, 23 Июля 2010

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

    +148

    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
    #include <cstdio>
    #include <memory.h>
    
    #define maxn 18
    
    char c[maxn][maxn];
    int d[1 << maxn];
    
    int main()
    {
      freopen("network.in", "rt", stdin);
      freopen("network.out", "wt", stdout);
      
      int n; scanf("%d", &n);
      for (int i = 0; i < n; i++)
        scanf("%s", c[i]);
        
      memset(d, 0, sizeof(d));
      
      for (int k = 0; k < (1 << n); k++)
        for (int i = 0; i < n; i++)
          for (int j = 0; j < n; j++)
            if (c[i][j] == 'Y' && k & (1 << i) && k & (1 << j) && d[k - (1 << i) - (1 << j)] + 2 > d[k])
              d[k] = d[k - (1 << i) - (1 << j)] + 2;
              
      int max = 0;
      for (int i = 0; i < (1 << n); i++)
        if (d[i] > max)
          max = d[i];
          
      printf("%d\n", max);
      
      return 0;
    }

    ACM-задачка на динамику по подмножествам.
    Кто поймет, тому 5 ;)

    ystepanov, 22 Июля 2010

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

    +152

    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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    template<typename T> class myVector {
    private:
    	T* data; // Указатель на массив с данными
    	int count; //Кол-во элементов в векторе
    	T maxv, minv; // Максимальный и минимальный элементы
    	void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
    	{
    		if (leftarg < rightarg) {
    			T pivotvalue = a[leftarg];
    			int left = leftarg - 1;
    			int right = rightarg + 1;
    			for(;;) {
    
    				while (a[--right] > pivotvalue);
    				while (a[++left] < pivotvalue);
    				if (left >= right) break;
    				T temp = a[right];
    				a[right] = a[left];
    				a[left] = temp;
    			}
    			int pivot = right;
    			quicksort(a, leftarg, pivot);
    			quicksort(a, pivot + 1, rightarg);
    		}
    	}
    public:
    	myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
    	{
    	}
    	~myVector() //Деструктор
    	{
    		if (data)
    			delete [] data;
    	}
    	void operator<<(const T &Value) //Оператор для добавления элемента в вектор
    	{
    		data = (T*)realloc(data, ++count * sizeof(T));
    		data[count-1] = Value;
    		if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
    			maxv = Value;
    		else 
    			if (minv > Value)
    				minv = Value;
    	}
    	T& operator[](const int &Index)//Оператор [] для доступа по индексу
    	{
    		if (Index >= count) throw 1;
    		return data[Index];
    	}
    	void orderAsc(T *result) const //Сортировка по возрастанию
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    	}
    	void orderDesc(T *result) const
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    		int swap, b = count;
    		for(int a = 0; a < --b; a++) {
    			swap = result[a];  result[a] = result[b]; result[b] = swap; 
    		}
    	}
    	T max() const
    	{
    		if (!data) throw 1;
    		return maxv;
    	}
    	T min() const
    	{
    		if (!data) throw 1;
    		return minv;
    	}
    };
    int main()
    {
    	myVector<int> v;
    	for (int i = 0; i < 10; i++)
    		v << rand() % 100; // Заполняем рандомными элементами
    	for (int i = 0; i < 10; i++)
    		printf("%d ", v[i]); // Выводим их
    	printf("\n");
    	int *arr = new int[10];
    	v.orderAsc(arr); //Сортируем по возрастанию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i)); //Выводим результат
    	printf("\n");
    	v.orderDesc(arr); //Сортируем по убыванию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i));//Выводим результат
    	printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
    	delete [] arr;
    }

    Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко

    JC_NVKZ, 20 Июля 2010

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