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

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    if (cur1!=NULL){
    	while(cur1!=NULL){
    	...
    }

    Вот такие вот потрясающие проверки в духе "нуавдруг?"

    tony, 22 Июня 2010

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

    +118

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static IEnumerable<Tuple<A1, A2, A3, A4>> 
    			CrossProduct<A1, A2, A3, A4>
    			(IEnumerable<A1> arg1, IEnumerable<A2> arg2,
    			IEnumerable<A3> arg3, IEnumerable<A4> arg4)
    		{
    			foreach (var a1 in arg1)
    				foreach (var a2 in arg2)
    					foreach (var a3 in arg3)
    						foreach (var a4 in arg4)
    							yield return Make.Tuple(a1, a2, a3, a4);
    		}

    Интересно, а что этот человек будет делать, когда нужно будет n ступенек? :-)

    tinynick, 21 Июня 2010

    Комментарии (14)
  4. Си / Говнокод #3421

    +129

    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
    #include <iostream>
    #include <string.h>
    using namespace std;
    int strsearch(char* from, char* what);
    int getnumberafter(char* from, char* what);
    int strch(char* a, char* b, int pos);
    
    int strsearch(char* from, char* what)
    {
        int n=strlen(from)-strlen(what)+1;
        int i;
        for(i=0; i<n; i++)
    	if(strch(from, what, i)==strlen(what)) return i;
        return 0;
    }
    int getnumberafter(char* from, char* what)
    {
        int p, ret=0;
        if((p=strsearch(from,what))==0) return 0;
        p+=strlen(what);
        while(from[p]<'0'&&from[p]>'9')
        {
    	p++;
    	if(p>=strlen(from)) return 0;
        }
        while(from[p]>='0'&&from[p]<='9'&&p<strlen(from))
        {
    	ret=ret*10+(from[p++]-'0');
        }
        return ret;
    }
    int strch(char* a, char* b, int pos)
    {
        int i,n=min(strlen(a)-pos,strlen(b));
        for(i=0; i<n; i++)
    	if(a[i+pos]!=b[i]) return i;
        return i;
    }
    int main(int argc, char* argv[])
    {
        int i;
        double max=1,vol=0;
        for(i=0; i<argc; i++)
        {
    	cout << i << ": " << argv[i] << endl;
    	if(strch(argv[i],"type",0)==4) {  max=getnumberafter(argv[i],"max=");}
    	if(strch(argv[i],"values",0)==6) { vol=(getnumberafter(argv[i],"=")+getnumberafter(argv[i],","))/2;}
        }
        cout << vol/max << endl;
        return 0;
    }

    Задача из чего-то типа этого:
    numid=2,iface=MIXER,name='Master Playback Volume'
    ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
    : values=31,31
    | dBscale-min=-46.50dB,step=1.50dB,mute=0
    Получить значение в процентах.
    #./a.out `amixer cget numid=2`
    0,67

    Tanger, 08 Июня 2010

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

    +157

    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
    void foo()
    {
     if (!wxFile::Exists(defDir + resourcePath)) return false;
     HBITMAP *bmp = new HBITMAP;
     wxString path = defDir + resourcePath;
     (*bmp) = (HBITMAP)LoadImage(0, path.c_str(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
     if (bmp != NULL) (*pMap)[resourceName] = bmp; else return false;
     return true;
    }
    
    bool SXXXXBitmapStorage::releaseItem(wxString resourceName)
    {
     ScrollBitmapHash::iterator iterator = pMap->find(resourceName);
     if (iterator == pMap->end()) return false;
     if (iterator->second != NULL) delete (HBITMAP*)iterator->second;
     pMap->erase(resourceName);
     return true;
    }
    
    HDC* SXXXXBitmapStorage::adjustToDC(wxString resourceName)//we must delete this object
    {
     HBITMAP *bmp = this->getItem(resourceName);
     if (bmp == NULL) return NULL;
     HDC *pDC = new HDC();
     (*pDC) = CreateCompatibleDC(0);
     SelectObject(*pDC, *bmp);
     return pDC;
    }

    И вы не поверите, этот код работал! Правда, конечно же, была утечка ресурсов

    Hsilgos, 07 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Allow* AccessSection::check(CONNECTION * connection, char *username, char *password)
    {
    ...
                    if (current->username != "" && username != "" && current->username != username)
                            continue;
    ...

    Кусок кода из прокси-сервера Shweby

    gpr, 07 Июня 2010

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

    +121

    1. 1
    2. 2
    3. 3
    private static readonly char SPECIFIER = "$"[0];
    private static readonly char DELIMITER = ":"[0];
    private static readonly char[] DELIMITER_ARRAY = new char[1] { DELIMITER };

    В глубинах довольно большой CRM'ки

    MegaHerz, 02 Июня 2010

    Комментарии (14)
  8. PHP / Говнокод #3339

    +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
    $data = curl_init('http://'.$site.'/index/sub/'); 
    curl_setopt($data, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($data, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($data, CURLOPT_POST, 1); 
    curl_setopt($data, CURLOPT_POSTFIELDS, $post); 
    curl_setopt($data, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($data, CURLOPT_COOKIEJAR, $cookie); 
    curl_setopt($data, CURLOPT_CONNECTTIMEOUT,$timeout); 
    curl_setopt($data, CURLOPT_TIMEOUT,$timeout); 
    //curl_setopt($data, CURLOPT_COOKIEFILE, $cookie); 
    $data2 = curl_exec($data); 
    curl_close($data); 
    $return = iconv('utf-8','cp1251',$data2); 
    if (preg_match('/Неправильный логин или пароль/Ui',$return)) return FALSE; else return TRUE;

    eval, 28 Мая 2010

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

    +115

    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
    #include "iostream"
    
    using namespace std;
    
    int main()
    {
    	cout << "Vvedite storonu a:";
    	int a;
    	cin >> a;
    	cout << "Vvedite storonu b:";
    	int b;
    	cin >> b;
    	cout << "Vvedite storonu c:";
    	int c;
    	cin >> c;
    	int g=1;
    	while(g=1){
    		if(a==0||b==0||c==0){ cout << "Ne treugolnik";
    		break;}
    		if(a<=b+c || c<=a+b || b<=a+c){ cout << "Daaa!!! Treugolnik";}
    		break;}
    	return 0;
    }

    Вот как мы узнаем, треугольник ли это по сторонам.

    hromjo, 11 Мая 2010

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

    +116

    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
    struct Epica
    {
    public:
    	signed int Value;
    };
    
    //...
    
    Epica* ValEp[10][17]; 
    
    //...
    
    ValEp[i][jj][0].Value;

    Угадайте, что с автором?

    Говногость, 09 Мая 2010

    Комментарии (14)
  11. PHP / Говнокод #3158

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function trimzero($i){
    	$i=trim($i);
    	if(is_string($i) && strlen($i)>1){
    		while(ereg("^0",$i))
    			$i=ereg_replace("^0",'',$i);
    	}
    	return $i;
    }

    minisot, 05 Мая 2010

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