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

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

    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
    namespace belugina
    {
        void Exchange (int i, int j, int *x){ 
    	int tmp;
    	tmp = x[i];
    	x[i] = x[j];
    	x[j] = tmp;
    }
    
    void sifting (int left, int right, int *x){
    	int q, p, h;
    	q=2*left+1;
    	p=q+1;
    	if (q <= right){
    		if (p <= right && x[p] > x[q])
    			q = p;
    		if (x[left] < x[q]){
    			 Exchange (left, q, x);
    			 sifting(q, right, x);
    			 }
    		 }
    }
        
    }

    Бред сумасшедшего. По утверждению автора алгоритм "Просеивание" элементов.

    dethless, 19 Мая 2019

    Комментарии (52)
  3. Куча / Говнокод #25519

    −99

    1. 1
    Прошу забанить всех на один год.

    админа - бессрочно.

    AHCKujlbHblu_netyx, 06 Апреля 2019

    Комментарии (52)
  4. PHP / Говнокод #25176

    +1

    1. 1
    Вот так пишут настоящие программисты внутри HTML. Ни грамма жалости... Ни слова унижения.

    ...
    <h6 class="card-subtitle">

    <?php switch($cur_user['school_type']):
    case 1: ?>
    <?php echo $lang['Public_school']; ?>
    <?php break; ?>
    <?php case 2: ?>
    <?php echo $lang['State_religious_school']; ?>
    <?php break; ?>
    <?php case 3: ?>
    <?php echo $lang['muslim']; ?>
    <?php break; ?>
    <?php case 4: ?>
    <?php echo $lang['orthodox']; ?>
    <?php break; ?>
    <?php endswitch; ?>

    </h6>
    ...

    gonext, 10 Декабря 2018

    Комментарии (52)
  5. Си / Говнокод #24870

    −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
    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
    #include<stdio.h>
    #include<stdlib.h>	
    #include<string.h>		
    struct masterRecord{ int 		Number; char 		Name[20]; char 		Surname[20]; char 		addres[30]; char 		TelNumber[15]; double  	indebtedness; double    	credit_limit;  double  	cash_payments; };
    	typedef  struct  masterRecord Data;
    	int main(void){
    		int choice = 0;	
    		void masterWrite(FILE *ofPTR, Data   Client       )  ,transactionWrite(FILE *ofPTR, Data transfer     )   ,      blackRecord(FILE *ofPTR, FILE  *ofPTR_2 , FILE *blackrecord , Data	 client_data  ,   Data transfer )                    ;
    		FILE *Ptr, *Ptr_2 , *blackrecord   ;
    	  	Data	 client_data,  transfer  ;
    	printf("%s", "please enter action\n1 enter data client:\n2 enter data transaction:\n3 update base\n" );
    			while (		scanf("%d", &choice )  !=  -1   )  {
    				switch(  choice  )  {
    				case	1:
    					Ptr = fopen("record.dat", "r+" );
    						if(Ptr == NULL ){
    						puts("Not acess");	
    						}
    					else{
    							masterWrite(  Ptr , client_data);	
    							fclose(Ptr);
    							}
    					break;
    				case    2:
    					Ptr = fopen("transaction.dat", "r+" );
    						if(Ptr == NULL ){
    						puts("Not acess");	
    						}
    					else{
    						transactionWrite( Ptr, transfer     );
    						fclose(Ptr);
    					}
    					break;	
    				case    3:
    					Ptr = fopen( "record.dat", "r"  );
    					Ptr_2 = fopen("transaction.dat", "r" );
    					blackrecord = fopen("blackrecord.dat", "w" );	
    				if(	Ptr == NULL ||  	Ptr_2 == NULL ||  		blackRecord == NULL      ){
    						puts("exit");
    					}
    					else{
    					blackRecord( Ptr, Ptr_2 , blackrecord  , client_data  ,    transfer );
    					fclose(Ptr);
    					fclose(Ptr_2);	
    					fclose(blackrecord);
    					}
    					break;
    					default:
    					puts("error");
    					break ;
    				}
     	printf("%s", "please enter action\n1 enter data client:\n2 enter data transaction:\n3 update base\n" );
    		}
                return 0;	
    	}
    	void masterWrite(FILE *ofPTR , Data   Client       )  {
    		printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n",  
    				"1 Number account: ",
    				"2 Client name: ",
    				"3 Surname: ",
    				"4 Addres client: ",
    				"5 Client Telnum: ",
    				"6 Client indebtedness: ",
    				"7 Client credit limit: ",
    				"8 Client cash payments: " );
    		while(  scanf("%d%s%s%s%s%lf%lf%lf", &Client.Number, Client.Name, Client.Surname, Client.addres, Client.TelNumber, &Client.indebtedness,	&Client.credit_limit ,	&Client.cash_payments    ) != -1     ){
    		fprintf( ofPTR, "%-12d%-11s%-11s%-16s%20s%12.2f%12.2f%12.2f\n", Client.Number, Client.Name, Client.Surname, Client.addres, Client.TelNumber, Client.indebtedness,	Client.credit_limit ,		 	Client.cash_payments    ) ;
    		printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n",  
    				"1 Number account: ",
    				"2 Client name: ",
    				"3 Surname: ",
    				"4 Addres client: ",
    				"5 Client Telnum: ",
    				"6 Client indebtedness: ",
    				"7 Client credit limit: ",
    				"9 Client cash payments:"
    										);
    				} }
           void transactionWrite(FILE *ofPtr, Data transfer     ){
    		printf("%s\n%s\n",  
    			"1 Number account: ",
    			"2 Client cash payments: ");
    			while(scanf("%d %lf" , &transfer.Number  , &transfer.cash_payments )   != -1      ){
    				fprintf( ofPtr, "%-3d%-6.2f\n", transfer.Number, 		transfer.cash_payments    ) ;
    				printf("%s\n%s\n",  
    						"1 Number account:",
    						"2 Client cash payments: "
    												);
    			} }
       void blackRecord(FILE *ofPTR, FILE  *ofPTR_2 , FILE *blackrecord , Data	 client_data  ,   Data transfer ){
    	while(fscanf( 	ofPTR  , "%d%s%s%s%s%lf%lf%lf",  &client_data.Number ,  client_data.Name  , client_data.Surname   , client_data.addres, client_data.TelNumber, &client_data.indebtedness, &client_data.credit_limit, &client_data.cash_payments)   != -1 )  {
    			while (	fscanf(	ofPTR_2 , "%d %lf",  &transfer.Number , &transfer.cash_payments       ) 	  !=  -1 ){
    					if(     client_data.Number     ==   transfer.Number   &&  transfer.cash_payments != 0         ){
    						client_data.credit_limit += transfer.cash_payments;
    					} 
    				}
    			fprintf(blackrecord   ,"%-12d%-11s%-11s%-16s%20s%12.2f%12.2f%12.2f\n", client_data.Number, client_data.Name, client_data.Surname, client_data.addres, client_data.TelNumber, client_data.indebtedness,	client_data.credit_limit ,  client_data.cash_payments    ) ;
    			rewind(	ofPTR_2 );
    		} }

    В новом Сорокине мне больше всего понравились "Фиолетовые лебеди".

    tyrin, 07 Октября 2018

    Комментарии (52)
  6. Python / Говнокод #24021

    +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
    class _automodule(types.ModuleType):
        """Automatically import lexers."""
    
        def __getattr__(self, name):
            info = LEXERS.get(name)
            if info:
                _load_lexers(info[0])
                cls = _lexer_cache[info[1]]
                setattr(self, name, cls)
                return cls
            raise AttributeError(name)
    
    
    oldmod = sys.modules[__name__]
    newmod = _automodule(__name__)
    newmod.__dict__.update(oldmod.__dict__)
    sys.modules[__name__] = newmod
    del newmod.newmod, newmod.oldmod, newmod.sys, newmod.types

    Динамичненько!

    syoma, 28 Марта 2018

    Комментарии (52)
  7. Си / Говнокод #23862

    +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
    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
    // https://github.com/Samsung/ADBI/blob/3e424c45386b0a36c57211da819021cb1929775a/idk/include/division.h#L138
    
    /* Long division by 10. */
    static unsigned long long int div10l(unsigned long long int v) {
    
        /* It's a kind of magic.  We achieve 64-bit (long) division by dividing the two 32-bit halfs of the number 64-bit
         * number.  The first (most significant) half can produce a rest when dividing, which has to be carried over to the
         * second half.  The rest_add table contains values added to the second half after dividing depending on the rest
         * from the first division.  This allows evaluation of a result which is almost correct -- it can be either the
         * expected result, or the expected result plus one.  The error can be easily detected and corrected.
         */
        
        /* one dream */
        static unsigned long long int rest_add[] = {
            0x00000000, 0x1999999a, 0x33333334, 0x4ccccccd, 0x66666667,
            0x80000001, 0x9999999a, 0xb3333334, 0xcccccccd, 0xe6666667
        };
        
        /* one soul */
        unsigned long long int a = div10((unsigned int)(v >> 32));
        unsigned long long int b = div10((unsigned int)(v & 0xffffffff));
        
        /* one prize */
        int ri = (v >> 32) - a * 10;
        
        /* one goal */
        unsigned long long int ret = (a << 32) + b + rest_add[ri];
        
        /* one golden glance */
        if (ret * 10L > v) {
            //printf("OGG %llu %llu\n", ret * 10, v);
            --ret;
        }
        
        /* of what should be */
        return ret;
    }

    Деление на 10. Но зачем? Неужели компилятор настолько туп, что сам не может этого сделать?
    И да, эти туповатые комментарии one dream, one soul это отсылка к песне Queen - A Kind of Magic https://youtu.be/0p_1QSUsbsM

    j123123, 03 Марта 2018

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

    0

    1. 1
    https://github.com/abseil/abseil-cpp

    Гугл заопенсорсил какой-то велосипед. Давайте обсирать его.

    subaru, 27 Сентября 2017

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

    +4

    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
    public bool IsNormal() {
    	return Type == TypeOfWord.Normal;
    }
    
    public bool IsNumber() {
    	return Type == TypeOfWord.Number;
    }
    
    public bool IsOperator() {
    	return Type == TypeOfWord.Operator;
    }
    		
    public bool IsBracket() {
    	return Type == TypeOfWord.Bracket;
    }
    
    public bool IsSymbol() {
    	return IsOperator() || IsBracket();
    }
    
    public bool IsSpace() {
    	return Type == TypeOfWord.Space;
    }
    
    public bool IsComment() {
    	return Type == TypeOfWord.Comment;
    }
    
    public bool IsExcess() {
    	return IsComment() || IsSpace();
    }
    
    public bool IsQuotedText() {
    	return Type == TypeOfWord.QuotedText;
    }
    
    public bool IsQuotedChar() {
    	return Type == TypeOfWord.QuotedChar;
    }
    
    public bool IsQuotedTextOrChar() {
    	return IsQuotedText() || IsQuotedChar();
    }
    
    public bool IsUnknown() {
    	return Type == TypeOfWord.Unknown;
    }

    dm_fomenok, 13 Июня 2016

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

    +1

    1. 1
    https://www.google.com/search?q=%D0%B2%D0%BE%D1%80%D0%B5%D1%86%D0%B8%D0%B8

    Насрали так, что все ссылки ведут на говнокод.
    Как эта херомантия называется в науке?
    3.14159265359, это ты придумал слово "вореции"?

    3_dar, 12 Апреля 2016

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

    −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
    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
    unsigned strlen(const char *str)
    {
    	const char *ptr;
    	for (ptr = str; *ptr; ++ptr);
    	return ptr - str;
    }
    
    char *strcpy(char *dst, const char *src)
    {
    	while((*dst++ = *src++) != 0);
    	return dst;
    }
    namespace std
    {
    	class string
    	{
    	public:
    		string(const char *str = 0) : size(str ? strlen(str) : 0)
    		{
    			this->str = new char[size + 1];
    			if(str) strcpy(this->str, str);
    			else this->str[0]=0;
    		}
    		string(const string &str) : size(str.size)
    		{
    			this->str = new char[size +1];
    			strcpy(this->str, str.str);
    		}
    		~string()
    		{
    			delete[] str;
    		}
    		const char* c_str() const
    		{
    			return str;
    		}
    	private:
    		char *str;
    		unsigned size;
    	};
    
    	class Cout
    	{
    	public:
    		Cout &operator<< (const char *str)
    		{
    			unsigned len = strlen(str);
    			asm volatile (
    			"movl $0x04, %%eax\n" 
    			"movl $0x01, %%ebx\n"
    			"int $0x80\n"
    			:
    			: "c"(str), "d"(len));
    			return *this;
    		}
    		Cout &operator<< (const string &str)
    		{
    			operator<< (str.c_str());
    			return *this;
    		}
    	} cout;
    }
    
    int main()
    {
    	std::string str = "Hello World!";
    	std::cout << str << "\n";
    	return 0;
    }

    Ещё 1 хелловорлд для линуха x86 на С++

    Koncord, 07 Ноября 2015

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