1. Си / Говнокод #4063

    +143

    1. 1
    2. 2
    3. 3
    #include <stdio.h>
    amin()
    {

    такая вот незначительная опечатка.

    killer1804, 22 Августа 2010

    Комментарии (3)
  2. Си / Говнокод #4029

    +144

    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
    #include <stdio.h>
    
    main()
    {
        char old[1000];
        char new[1000];
        int i;                      /*счетчик цикла длинны массива */
        int z;                      /*счетчик нового массива */
        int l;                      /*длинна массива */
        int c;                      /*член массива */
        l = 0;
        z = 0;
    
        printf
            ("программа удаления повторяющихся символов\n");
        printf
            ("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
    
    
        while ((c = getchar()) != EOF) {
            old[l] = c;
            l++;
        }
        old[l] = 0;
    
        printf
            ("Введите символ, который нужно удадить как повторяющийся\n");
        c = getchar();
    
    
        for (i = 0; i < l; i++) {
    
            if (old[i] != c) {
                new[z] = old[i];
                z++;
            } else if (old[i] == c && old[i + 1] != c) {    /*один символ из повторяющихся */
                new[z] = old[i];
                z++;
            }
    
        }
        new[z] = 0;
        printf("%s\n", new);
        printf("*end");
    }

    Сорри за флуд, но тут форматирование полутше.

    killer1804, 19 Августа 2010

    Комментарии (58)
  3. Си / Говнокод #4028

    +144

    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
    #include <stdio.h>
     
    main ()
    {
    char old[1000];
    char new[1000];
    int i; /*счетчик цикла длинны массива*/
    int z; /*счетчик нового массива*/
    int l; /*длинна массива*/
    int c; /*член массива*/
    l=0;
    z=0;
     
    printf("программа удаления повторяющихся символов\n");
    printf("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
     
     
    while((c=getchar()) != EOF)
    {
    old[l]=c;
    l++;
    }
    old[l]=0;
     
    printf("Введите символ, который нужно удадить как повторяющийся\n");
    c=getchar();
     
     
    for(i=0;i<l;i++)
    {
     
    if (old[i] != c)
    {
    new[z]=old[i];
    z++;
    }
    else
    if (old[i] == c  && old[i+1] !=c) /*один пробел*/
    {
    new[z]=old[i];
    z++;
    }
     
    }
    new[z]=0;
    printf("%s\n",new);

    Четвертый день изучаю СИ, три дня из них ушло на написание этой програмки :-D
    Шарики за ролики заехали, а потом наступил дзен и озарение.























    <a href=http://mobisvit.com/iphone-f003-p-17.html >РєРѕРїРёСЏ f003</a>

    killer1804, 19 Августа 2010

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

    +135

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
       static int val = 1;
       while(val /* vanish */ --> 0)
       {
          (++ /* do black magic ! */  val) /* very black magic !!! */ ++;
          (val == 2 ? printf("WTF ??!") : val =- 1);
       }
     
       if(val<-15)
               return ((1<0?/* magic */100500:500?233?33?321?2223?0:0:0:0:0:0));
     
       return ((!!val==!!false)?val ==- 100500?5:1:main());
    }

    Из разряда синтаксиса языка

    ForEveR, 17 Августа 2010

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

    +136

    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
    #include <stdio.h>
    
    #define declare_generic_func(x)\
    x add_##x(x x1,x x2) \
    {\
    	return x1+x2;\
    }
    #define generic_func(x,name) name##_##x
    
    declare_generic_func(int);
    declare_generic_func(double);
    
    int main()
    {
    	int a,b;
    	double ad,bd;
    	printf("Enter two integer numbers: ");
    	scanf("%d%d",&a,&b);
    	printf("Result: %d\n",generic_func(int,add)(a,b));
    	printf("Enter two real numbers: ");
    	scanf("%lf%lf",&ad,&bd);
    	printf("Result: %lf\n",generic_func(double,add)(ad,bd));
    	return 0;
    }

    Дженерики для труЪ сишников.

    frp, 14 Августа 2010

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

    +100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    f = fopen(file_name, "w");
    if (!f) {
      f = fopen(file_name, "w+");
      if (!f)
        logprintfl(EUCAWARN, "Cannot create %s!\n", file_name);
      else {
        len = fileno(f);
        if (len > 0)
          fchmod(len, S_IRUSR|S_IWUSR);
      }
    }

    Суровые калифорнийские парни сурово создают суровые файлы...

    raorn, 29 Июля 2010

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    inline Gdiplus::Color colorrefToGdiColor(COLORREF col, char alpha)
    {
    	return (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::RedMask) >> Gdiplus::Color::RedShift)) <<   Gdiplus::Color::BlueShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::GreenMask) >> Gdiplus::Color::GreenShift)) << Gdiplus::Color::GreenShift) | (static_cast<unsigned long>(static_cast<unsigned char>((col & Gdiplus::Color::BlueMask) >> Gdiplus::Color::BlueShift)) << Gdiplus::Color::RedShift) | (static_cast<unsigned long>(alpha) << Gdiplus::Color::AlphaShift);
    }

    Тихо себя ненавижу. Слава Б-г'у это всё выкидывается.

    Altravert, 23 Июля 2010

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    recordSize=logicalRecordLength;
    BytesToRead=cnt*recordSize;
    records=cnt;
    while ( ((pos + BytesToRead)>dataSize)&&records )
    {
        BytesToRead = --records * recordSize;
    }

    Не думал, что у нас в коде встречу нечто явно похожее на пример №2 из статьи "Индусский код" на Луркморе.
    Ну и стоит добавить, что реально logicalRecordLength всегда равен 1.

    vovochka, 21 Июля 2010

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

    +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
    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
    int AnalizingHeaderLine(char* HeadLine)
    {
    	if(HeadLine==NULL) return -1;
    	if(strlen(HeadLine)==0) return 0;
    
    	if(!strncmp(HeadLine,"HTTP/",5))
    		ProcessStatusHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "date:",5))
    		ProcessDateHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "server:",7))
    		ProcessServerHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "last-modified:",14))
    		ProcessLastModHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "content-type:",13))
    		ProcessContTypeHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "content-length:",15))
    		ProcessContLenHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "pragma:",7))
    		ProcessPragmaHL(HeadLine);
    	else if(!strncmp(strlwr(HeadLine), "Connection",10))
    		ProcessConnectHL(HeadLine);
    	else printf("Unknown header line: %s\n", HeadLine);
    	return strlen(HeadLine);
    }
    
    int ProcessStatusHL(char* HeadLine)
    {
    	short MinVer, MajVer;
    	char ResultStr[32];
    	char Num;
    	short Code;
    	Num = sscanf(HeadLine, "HTTP/%d.%d %d %s", &MinVer, &MajVer, &Code, ResultStr);
    	if(Num!=3 && Num!=4) 
    	{	printf("Error status string\n");
    		return -1;
    	}
    	return Code;
    }
    
    int ProcessDateHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessServerHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessLastModHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessContTypeHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessContLenHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessPragmaHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }
    
    int ProcessConnectHL(char* HeadLine)
    {
    	printf("%s\n",HeadLine);
    	return 0;
    }

    CGI. Обработка HTTP-заголовков. Rev. 1.0

    absolut, 20 Июля 2010

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

    +131

    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
    #include <stdio.h>
    
    void factorization(int num, int show) {
        int num1 = num;
        int n = 2;
        while ( n*n <= num1 ) {
            if ( num%n == 0 ) {
                num = num / n;
                if ( show )
                    printf( "%d\n", n );
            } else {
                n ++;
            }
        }
    }
    
    int main() {
        int i = 0;
        while ( i < 1000 ) {
            factorization(999999, 0);
            i ++;
        }
        return 0;
    }

    Опубликовано в одной из ссылок с http://habrahabr.ru/blogs/ruby/48952/ (если надо, точную ссылку найду позже).
    Код раскладывает число на простые множители тупым перебором делителей. Мало того, что этот код медленный, так он иногда последний множитель пропускает. Одновременно и ошибка, и скорость исправляются так:
    - while ( n*n <= num1 ) {
    + while ( n <= num ) {
    Неожиданно, правда?

    inkanus-gray, 13 Июля 2010

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