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

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    foreach (var item in text.Split(' ')) {
    	if (!string.IsNullOrEmpty(item)) {
    		text = item;
    		break;
    	}
    }

    переменная text всегда содержит несколько пробелов и затем идентификатор.

    paladin80, 02 Августа 2012

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

    +989

    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
    stek* getLast(){
    	stek* result = first;
    	while (!isLast(*result)){
    		result = result->next;
    	}
    	return result;
    }
    void push( char* string ){
    	stek* anew = new stek;
    	anew->string = string;
    	anew->next = NULL;
    	anew->first = first;
    	getLast()->next = anew;
    }
    void printList(){
    	if (first != NULL){
    		stek* element = first;
    		puts( element->string );
    		while (!isLast(*element)){
    			element = element->next;
    			puts( element->string );
    		}
    	}
    	else{
    		puts( "List is empty" );
    	}
    }
    stek* getPrev( stek* element ){
    	stek* result = first;
    	while (result->next != element){
    		result = result->next;
    	}
    	return result;
    }
    void changeFirstInList( stek* newFirst ){
    	stek* element = first;
    	while (element != NULL){
    		element->first = newFirst;
    		element = element->next;
    	}
    }
    void deleteElement( stek* element )
    {
    	if ( element->first == element ){
    		first = element->next;
    		changeFirstInList( first );
    	}
    	else{
    		stek* prev = getPrev( element );
    		stek* next = element -> next;
    		prev->next = next;
    	}
    }
    void deleteElements( int length ){
    	stek* element = first;
    	while (element != NULL){
    		stek* next = element->next;
    		if (strlen(element->string) < length) {
    		    deleteElement( element );
    		}
    		element = next;
    	}
    }
    int _tmain(int argc, _TCHAR* argv[]){ 
    	char *token;
    	char st1[80];
    	int minLength = 4;
    	int n=0;
    	
    	printf("Enter string: ");
    	gets( st1 );
    	printf("Enter minimal length: ");
    	scanf( "%d", &minLength );
    
    	first=NULL;
    	first=new stek;
    	first->next=NULL;
    	first->first=first;
      token=strtok(st1," ");
      first->string=token;
      token=strtok(NULL," ");
      while( token != NULL){ 
    	push(token);;
    	token=strtok(NULL," ");
      }
      stek* element = first;
      while (element != NULL){
    	stek* next = element->next;
    	if (strlen(element->string)<3) n++;
    	element = next;
      }
      puts("Initial stack:");
      printList();
      deleteElements( minLength );
      printf("Slov dlinoi less than 3: %d\n",n);
      puts("After deleting:");
      printList();
      getch();
    }

    Лабораторная работа, написанная двумя студентами первого курса. Задание: "Дана строка 80 символов, разбить её на слова (разделитель - пробел), удалить слова меньше опр. длины и вывести количество слов с длиной меньше 3-ех".
    Почти каждая строчка в main'e - перл.
    З.Ы. Форматирование кода тоже доставляет.

    Fai, 10 Апреля 2012

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

    +160

    1. 1
    2. 2
    http://habrahabr.ru/blogs/about_cms/130082/
    facepalm.png

    dlemaser (aka WebKill), хабр ниторт^Wговно

    DrFreez, 10 Октября 2011

    Комментарии (64)
  5. JavaScript / Говнокод #7871

    +160

    1. 1
    2. 2
    3. 3
    window.alert = function(){
            events.event(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]);
        }

    И это - в продакшене. Писано - для военных

    Teddy_Brown, 15 Сентября 2011

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

    +160

    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
    HRESULT GetOutlookVersionString(LPSTR* ppszVer, BOOL* pf64Bit)
    {
        HRESULT hr = E_FAIL;
        LPSTR pszTempPath = NULL;
        LPSTR pszTempVer = NULL;
        TCHAR pszaOutlookQualifiedComponents[][MAX_PATH] = {
            TEXT("{1E77DE88-BCAB-4C37-B9E5-073AF52DFD7A}"), // Outlook 2010
            TEXT("{24AAE126-0911-478F-A019-07B875EB9996}"), // Outlook 2007
            TEXT("{BC174BAD-2F53-4855-A1D5-0D575C19B1EA}")  // Outlook 2003
        };
    
        int nOutlookQualifiedComponents = _countof(pszaOutlookQualifiedComponents);
        int i = 0;
        DWORD dwValueBuf = 0;
        UINT ret = 0;
    
        *pf64Bit = FALSE;
    
        for (i = 0; i < nOutlookQualifiedComponents; i++)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.x64.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
            if (ERROR_SUCCESS == ret) break;
        }
    
        if (ret != ERROR_SUCCESS)
        {
            ret = MsiProvideQualifiedComponent(
                pszaOutlookQualifiedComponents[i],
                TEXT("outlook.exe"),
                (DWORD) INSTALLMODE_DEFAULT,
                NULL,
                &dwValueBuf);
        }
        else
        {
            *pf64Bit = TRUE;
        }
    
        if (ret == ERROR_SUCCESS)
        {
            dwValueBuf += 1;
            pszTempPath = (LPSTR) malloc(dwValueBuf * sizeof(TCHAR));
    
            if (pszTempPath != NULL)
            {
                if ((ret = MsiProvideQualifiedComponent(
                    pszaOutlookQualifiedComponents[i],
                    TEXT("outlook.exe"),
                    (DWORD) INSTALLMODE_EXISTING,
                    pszTempPath,
                    &dwValueBuf)) != ERROR_SUCCESS)
                {
                    goto Error;
                }
    
                pszTempVer = (LPSTR) malloc(MAX_PATH * sizeof(TCHAR));
                dwValueBuf = MAX_PATH;
                if ((ret = MsiGetFileVersion(pszTempPath,
                    pszTempVer,
                    &dwValueBuf,
                    NULL,
                    NULL))!= ERROR_SUCCESS)
                {
                    goto Error;    
                }
                *ppszVer = pszTempVer;
                pszTempVer = NULL;
                hr = S_OK;
            }
        }
    
    Error:
        free(pszTempVer);
        free(pszTempPath);
        return hr;
    }

    Говнокод от САМОГО Билли... 21 век на дворе, а у нас в C++ коде goto Error написано (точнее - накакано).
    Источник - http://msdn.microsoft.com/en-us/library/dd941331.aspx

    kVolt, 09 Сентября 2011

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

    +167

    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
    const StringId sidPathName = [=]() -> const char* const
    {
    	switch (path)
    	{
    		case PATH_TOWN_HERO:
    			return "game/careers/town_hero";
    		case PATH_MAD_SCIENTIST:
    			return "game/careers/mad_scientist";
    		case PATH_SPECIAL_AGENT:
    			return "game/careers/special_agent";
    		case PATH_PSYCHIC_PAINTER:
    			return "game/careers/psychic_painter";
    		default:
    			RZT_ASSERT(false);
    			return "";
    	}
    }();

    Не удержался: давно мечтал о возможности ставить const на такие переменные, не отказываясь при этом от свитчей!

    Kirinyale, 21 Февраля 2011

    Комментарии (64)
  8. Си / Говнокод #3454

    +141

    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
    #include <stdio.h>
    
    int main() {
    	unsigned d,t,k;
    	scanf("%d",&d);
    	t=d;
    	for(k=0;t!=0;k++) //определяем кол-во значащих битов
    		t>>=1;
    	//обнуляем старший значащий бит
    	d<<=sizeof(d)*8-k+1; 
    	d>>=sizeof(d)*8-k+1; 
    	return 0;
    }

    Вот такое вот обнуление старшего бита

    movaxbx, 11 Июня 2010

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

    +52.6

    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
    #include <iostream.h>
    #include <conio.h>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
     
      system ("Title Kaлькyлятop");
    
      int x, y, otvet;
      char znak;
     
      cin >> x >> znak >> y;
        
      if (znak == '+') otvet = x+y;
      if (znak == '-') otvet = x-y;
      if (znak == '*') otvet = x*y;
      if (znak == '/') otvet = x/y;
    
      system ("cls");
    
      cout << x << znak << y << "=" << otvet;
    
      getch();
      return 0;
    }

    Kaлькyлятop

    men, 19 Января 2010

    Комментарии (64)
  10. PHP / Говнокод #6

    +42.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /// Однажды придумал от скуки :) the1st.net.ru
    
    if(!function_exists('function_exists')) {
     function function_exists($f) {
      return function_exists($f);
     }
    }

    Придумано от скуки на досуге. Довольно спонтанно вырвалась мысль и была сразу воплощена в жизнь :)

    guest, 23 Ноября 2008

    Комментарии (64)
  11. Си / Говнокод #28916

    0

    1. 1
    С днём защитника жопы Борманда вас, питухи!

    День защитника Путина.

    bormandinho, 23 Февраля 2024

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