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

    +142

    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
    static char months [] = "JanFebMarAprMayJunJulAugSepOctNovDecGlk";
    static char dows [] = "SunMonTueWedThuFriSatEar";
    
    
    int dd [] =
    {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    
    void gen_http_date (char date_buffer[29], int time) {
      int day, mon, year, hour, min, sec, xd, i, dow;
      if (time < 0) time = 0;
      sec = time % 60;
      time /= 60;
      min = time % 60;
      time /= 60;
      hour = time % 24;
      time /= 24;
      dow = (time + 4) % 7;
      xd = time % (365 * 3 + 366);
      time /= (365 * 3 + 366);
      year = time * 4 + 1970;
      if (xd >= 365) {
        year++;
        xd -= 365;
        if (xd >= 365) {
          year++;
          xd -= 365;
          if (xd >= 366) {
            year++;
            xd -= 366;
          }
        }
      }
      if (year & 3) {
        dd[1] = 28;
      } else {
        dd[1] = 29;
      }
    
      for (i = 0; i < 12; i++) {
        if (xd < dd[i]) {
          break;
        }
        xd -= dd[i];
      }
    
      day = xd + 1;
      mon = i;
      assert (day >= 1 && day <= 31 && mon >=0 && mon <= 11 &&
          year >= 1970 && year <= 2039);
    
      sprintf (date_buffer, "%.3s, %.2d %.3s %d %.2d:%.2d:%.2d GM",
          dows + dow * 3, day, months + mon * 3, year,
          hour, min, sec);
      date_buffer[28] = 'T';
    }

    Делать имена месяцев и дни недели одной сишной строкой, чтобы потом выводить оттуда по три символа через sprintf, считая оффсет умножением на 3 т.к. имена месяцев и дней недели влазят в три символа
    https://github.com/vk-com/kphp-kdb/blob/ce1ac4fbde2d3b546936ad07d6a748958f6d2198/net/net-http-server.c#L664

    http://roem.ru/2013/07/20/kphp76561/
    >ВКонтактовские "олимпиадники"-чемпионы ACM разработали крайне интересную высоконагруженным сайтам технологию.

    Хреновые какие-то олимпиадники попались, раз неосилили http://ideone.com/IfvBgi

    j123123, 09 Марта 2014

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

    +139

    1. 1
    2. 2
    3. 3
    #if _FP_W_TYPE_SIZE < 32
    #error "Here's a nickel, kid. Go buy yourself a real computer."
    #endif

    https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/master/include/math-emu/quad.h

    absolut, 06 Марта 2014

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

    +139

    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
    #include <stdio.h>
    #include <stdlib.h>
    #define value_i int
    #define gen_program main()
    #define begin {
    #define end }
    #define sep ;
    #define back_val return
    #define vis(a) printf ("%d", a)
    #define ln printf ("\n")
    #define ln3 printf ("\n\n\n")
    #define cycle_count for
    #define rand rand()
    #define gen_rand srand((unsigned)time(NULL))
    #define value_c char
    #define vis_c(a) printf("%c", a)
    #define eq =
    #define uneq !=
    #define check ==
    #define inc(a) a++
    #define res %
    #define add +
    #define sub -
    #define blank void
    #define small <
    #define big >
    
    blank line(blank) sep
    
    value_i gen_program
    begin
        value_i x, i                                sep
        gen_rand                                    sep
        value_c c eq ' '                            sep
        cycle_count(i eq 1 sep i small 10 sep inc(i))
        begin
            x eq rand res 10 add 1                  sep
            if (x uneq 10)
            begin
                vis(x)                              sep
                vis_c(c)                            sep
            end
        end
        ln3                                         sep
        line()                                      sep
        ln                                          sep
        back_val 0                                  sep
    
    end
    
    blank line(blank)
    begin
        value_i i sep
        cycle_count (i eq 0 sep i small 10 sep inc(i) )
        begin
        printf("-/*\\")                                sep
        end
        printf("-")                                    sep
    end

    Можно рефакторить.

    Hammer, 01 Марта 2014

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

    +117

    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
    int mainCRTStartup()
    {
      int argc = 0;
      char* argv[MAX_CMD_ARGS + 1];
      char** pargv = argv;
      char* cmdLine = strdup(GetCommandLineA());
      int result = 0;
    
      g_module = GetModuleHandle(NULL);
      g_process = GetCurrentProcess();
      g_thread = GetCurrentThread();
      g_heap = GetProcessHeap();
    
      for (*pargv = strtok(cmdLine, " "); *pargv && argc < MAX_CMD_ARGS; *pargv = strtok(NULL, " "))
      {
        ++argc;
        ++pargv;
      }
    
      *pargv = NULL;
      result = main(argc, argv);
      free(cmdLine);
      return result;
    }

    LispGovno, 27 Февраля 2014

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

    +128

    1. 1
    #define STUPID_ACCELF_TEXT_SHIT

    laMer007, 26 Февраля 2014

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

    +142

    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
    static OSStatus
    SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                     uint8_t *signature, UInt16 signatureLen)
    {
        OSStatus        err;
        ...
    
        if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
            goto fail;
        if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
            goto fail;
            goto fail;
        if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
            goto fail;
        ...

    Говно с яблочным привкусом.
    http://habrahabr.ru/post/213525/

    P.S.: Не уверен Си это или плюсы.

    Vindicar, 24 Февраля 2014

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

    +140

    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
    #include<stdio.h>
    int main()
    {FILE*f1,*f2;
    f1=fopen("input.txt","r");
    f2=fopen("output.txt","w");
    int i,j,k,l,n,m,l1,m1;
    int a[100000]={0};
    int b[100]={0},b1[100]={0};
    fscanf(f1,"%d%d",&n,&k);
    for(i=0;i<n;i++)
    {fscanf(f1,"%d",&a[i]);
    if (i==0) b[(a[i]%k+k)%k]=1;
    else {for(j=0;j<k;j++)
    if(b[j]==1) {b1[(a[i]%k+j+k)%k]=1; b1[(j-a[i]%k+k)%k]=1;}
    for(j=0;j<k;j++)
    {b[j]=b1[j]; b1[j]=0;}}}
    if (b[0]==1) fprintf(f2,"Divisible");
    else fprintf(f2,"Not divisible");
    fclose(f1);
    fclose(f2);
    return 0;}

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

    Sauron, 20 Февраля 2014

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

    +142

    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
    ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
    АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
    МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
    ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
    АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
    МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
    ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
    АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
    МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
    ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
    АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
    МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
    ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
    АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
    МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО

    HUYPIZDA, 18 Февраля 2014

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

    +127

    1. 1
    #define SOME_MACRO_NAME 	4 /* 1 */

    sermp, 18 Февраля 2014

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //...
    float a = 7;
    printf("%d", *(unsigned int *)(&a) >> 23);
    // Что напечатает?
    //...

    На экзамене как-то задали такой вопрос. А ну-ка, кто без компилятора ответит?

    GonZaleZ, 18 Февраля 2014

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