1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #5494

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    DWORD H = 0;int i = 0;int S = 1;
    for (i = lstrlen(Stroka)-1; i!= -1; i--)
    {
    H = (H+Stroka[i]*S) % 65535;
    S*=4;
    }
    return H == 0? 65535: H;

    какой-то кустарный хэш.
    не пойму чем пахнет.

    bugmenot, 02 Февраля 2011

    Комментарии (78)
  3. JavaScript / Говнокод #4070

    +165

    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
    // Обновление надписи "Мои покупки"
    var file_f_basket = "/personal/cart/basket.php";
    
    //удаление пробелов, возврата каретки
    function trim(string)
    {
    	return string.replace(/(^\s+)|(\s+$)/g, "");
    }
    
    function BasketDeleteByID(id) {
    	BX.showWait();
    	jQuery.get(file_f_basket,{action:"DELETE",ID:id}, 
    	 function(data) 
    			{
    				if (trim(data) == "Success") 
    				{
    					var old = document.getElementById("record_" + id);
    					old.parentNode.removeChild(old);
    					SaleBasketUpdateTotal();
    				}
    				else if (trim(data) == "Empty")
    				{
    					var old = document.getElementById("goods");
    					old.parentNode.removeChild(old);
    					var old = document.getElementById("basket");
    					var mes = old.parentNode;
    					old.parentNode.removeChild(old);
    					var text = document.createTextNode("");
    					text.nodeValue = "Ваша корзина пуста.";
    					var elem = document.createElement("font");
    					elem.appendChild(text);
    					document.body.appendChild(elem);
    					elem.className="errortext";
    					mes.appendChild(elem);
    				}
    				
    				BasketUpdateLine();
    				BX.closeWait();
    				}
    				
    	);
    }
    function SaleBasketUpdateTotal() {
    
        var meForm   = document.getElementById('goods');
    
        var spanArray  = meForm.getElementsByTagName('span');
    
        var allSumm = 0;
    
        for (j = 0; j < spanArray.length; j++) {
            if (spanArray[j].className == "goodtotal")
               allSumm = allSumm + parseFloat(spanArray[j].innerHTML);
        }
    
        document.getElementById('total_sum').innerHTML = allSumm;
    }
    /*
     * Входные параметры функции:
     *    quant     - количество товара
     *    prise     - стоимость за единицу
     *    updElemId - идентификатор элемента, в котором требуется обновить данные (по конкретному товару)
     **/
     function SaleBasketUpdateTotalById(quant, price, updElemId)
     {
           
         var anum = /(^\d+$)|(^\d+\.\d+$)/;
         if (!anum.test(quant)) {
           
             alert('Введенное значение не является числом!');
             return;
         }
           
         goodSum = quant * price;
      
         document.getElementById(updElemId).innerHTML = goodSum;
    
    	 SaleBasketUpdateTotal();     
     }
     function isNumKeyPressed(_this,_event) {
    		if (!_event) _event = event;
    		var q = _this;
    		
    		if ((_event.keyCode > 8 || _event.keyCode < 57) & (_event.keyCode != 0)) return true;
    		if ((_event.charCode < 8 || _event.charCode > 57)) return false;
    		if (q.value.length >= 2) return false;	
    	}
    
    function BasketUpdateLine()
    {
    	jQuery.get(file_f_basket, {action: "COUNT"}, function(data)
    			{
    				if (parseInt(trim(data)) > 0 )
    					jQuery("#basket_line").html("<a href='/personal/cart/' class='basket-line'>Мои покупки (" + trim(data) + ")</a>");
    				else
    					jQuery("#basket_line").html("Мои покупки");
    			}
    	);

    Это мой гавнокодище... хыххы

    Ded_Maksim, 23 Августа 2010

    Комментарии (78)
  4. Java / Говнокод #21

    −70.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    boolean is_admin;
    // something
    Boolean b = new Boolean( is_admin );
    if( b.toString().length() == 4 ) {
       // something...
    }
    // something

    guest, 27 Ноября 2008

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <stdio.h>
    
    int main() {
        char* pituh;
        puts(pituh);
        pituh = "kokoko";
        return 0;
    }

    Угадайте что выведет код?
    ISO и прочим скилловикам просьба воздержаться.

    https://ideone.com/sYrqiB

    3_dar, 29 Мая 2022

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

    −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
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    #include "property.hpp"
    
    class person {
    public:
       person() = default;
       ~person() = default;
    
       SETTER_PRIM(int, id);
       SETTER_FLAG(bool, merried);
       SETTER_ENUM(human, type);
    
       SETTER_PTR(int, next);
       SETTER_ARR(std::string, address, 3);
    
       SETTER_OBJ_LR(std::string,  name);
       SETTER_OBJ_CLR(std::string, name);
       SETTER_OBJ_RR(std::string,  name);
    
       GETTER_PRIM(int, id);
       GETTER_FLAG(bool, merried);
       GETTER_ENUM(human, type);
    
       GETTER_OBJ_LR(std::string,  name);
       GETTER_OBJ_CLR(std::string, name);
    
       GETTER_PTR(int, next);
       GETTER_ARR(std::string, address);
    
    private:
       int id;
       human type;
    
       std::string name;
       std::string address[5];
    
       bool merried;
       int* next;
    };

    https://habr.com/ru/post/459212/

    kcalbCube, 26 Апреля 2022

    Комментарии (77)
  7. Go / Говнокод #27530

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    func (c *Client) DeleteFile(filename string) {
    	_, err := s3.New(c.session).DeleteObject(&s3.DeleteObjectInput{
    		Bucket: aws.String(c.bucket),
    		Key:    aws.String(filename),
    	})
    	if err != nil {
    		return
    	}
    }

    Ошибочка обработана

    Vitanaki, 21 Июля 2021

    Комментарии (77)
  8. Go / Говнокод #26743

    0

    1. 1
    https://m.vk.com/wall-30666517_1672469

    Из исходников и документации Go убрали фразы whitelist/blacklist и master/slave.
    Всё из-за протестов, которые сейчас проходят в Америке.

    Фразы «blacklist» и «whitelist» заменили на «blocklist» и «allowlist», а «master» и «slave»
    в зависимости от контекста на «process», «pty», «proc» и «control».

    Отмечается, что изменения не приведут к нарушению обратной совместимости и путанице, так как
    большая часть исправлений приходится на комментарии, тесты и внутренние переменные.

    OlegUP, 08 Июня 2020

    Комментарии (77)
  9. Си / Говнокод #26317

    −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
    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
    99. 99
    void push_stack(node *topPTR, int value) {
    	node newPTR = malloc(sizeof(Stack));
    
    	if (newPTR != NULL) {
    
    		newPTR->alpha = value;
    		newPTR->nxtPTR = *topPTR;
    		*topPTR = newPTR;
    	}
    	else {
    
    		puts("error");
    	}
    }
    
    void push_stack_2(node_2 *topPTR_2,  double value) {
    
    	node_2 newPTR = malloc(sizeof(Stack_2));
    
    	if (newPTR != NULL) {
    
    		newPTR->alpha = value;
    		newPTR->nxtPTR_2 = (void *)  *topPTR_2;
    		*topPTR_2 = newPTR;
    
    	}
    	else {
    
    		puts("error");
    	}
    }
    
    int pop(node *fix) {
    	
    	int  value = 0;
    	node temp = *fix;
    	value = (*fix)->alpha;
    	*fix = (*fix)->nxtPTR;
    	free(temp);
    return value;
    }
    
    double pop_2(node_2 *fix) {
    	double  value = 0;
    	node_2 temp = *fix;
    	value = (*fix)->alpha;
    	*fix = (void *)   (*fix)->nxtPTR_2;
    	free(temp);
    return value;
    }
    
    char check_stack(node data) {
    	return data->alpha   ==  0  ;
    }
    
    int isOperator(char c) {
    	return c == '/' || c == '*' || c == '-' || c == '+' || c == '^' ;
    }
    
    int precedence(char data_1, char  data_2) {
    		
    		switch(data_1){
    		case '(':	
    		return -1;
    		case '^':
    	
    			if(data_2 == '^' ){
    					return    0;
    			} 
    			 else if (data_2 == '*' || data_2 == '/' || data_2 == '+' || data_2 == '-'   ){
    			 	
    			 }
    	 		
    	 	case 	'/' : 
            case 	'*':        
    			
    			if(data_2 == '^' ){
    					return    -1;
    				} 
    					else if( data_2 == '/' || data_2 == '*'     ){
    						return    0;
    					}	
    				
    			else if( data_2 == '+' || data_2 == '-'     ){
    						return     1;
    		
    		}
    		
    		case  '+':
    		case  '-':		
    		
    		if(data_2 == '^'  || data_2 == '/' || data_2 == '*'        ){
    			return    -1;
    				} 
    		else{
    			return     0;
    			 }
    		}
    }

    calc 3

    tyrin, 05 Января 2020

    Комментарии (77)
  10. Си / Говнокод #25796

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    n = ((n >>  1) & 0x55555555) | ((n <<  1) & 0xaaaaaaaa);
       n = ((n >>  2) & 0x33333333) | ((n <<  2) & 0xcccccccc);
       n = ((n >>  4) & 0x0f0f0f0f) | ((n <<  4) & 0xf0f0f0f0);
       n = ((n >>  8) & 0x00ff00ff) | ((n <<  8) & 0xff00ff00);
       n = ((n >> 16) & 0x0000ffff) | ((n << 16) & 0xffff0000);
    
                    -- C code which reverses the bits in a word.

    neTyx_npoTKHyTbIu, 03 Сентября 2019

    Комментарии (77)
  11. Python / Говнокод #24783

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    for i in xrange(10):
        globals()["mymassiv%d"%i] = i*i
     
    print mymassiv0, mymassiv1, mymassiv9

    Нафига в пыхоплеяде разные структуры данных типа массивов, множеств, словарей? Чтобы быть как "взрослые" языки?

    CTEPTOP_TUPOI_SHIZIK, 17 Сентября 2018

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