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

    +130

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(int j =0;j<d[i]/2;++j){
        char e[2] = {0,'\0'};
        const char* g = &e[0];
        e[0] = dict[i];
        s0.append(g);           
    }

    Нужен был const char*

    Abbath, 22 Апреля 2012

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

    +138

    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
    //
    		switch (cwin->cpref->shuffle) {
    			case TRUE:
    				last = g_list_last(cwin->cstate->rand_track_refs);
    				if ((!cwin->cstate->curr_rand_ref) || (last && (cwin->cstate->curr_rand_ref == last->data))){
    					path = get_next_unplayed_random_track(cwin);
    					if (!path)
    						rand_unplayed = TRUE;
    				}
    				else path = get_next_random_ref_track(cwin);
    				break;
    			case FALSE:
    				path = get_next_sequential_track(cwin);
    				if (!path) seq_last = TRUE;
    				break;
    			default:
    				break;
    		}

    буль...

    rat4, 21 Апреля 2012

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

    +128

    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
    Unsigned long int getset (void)
    {unsigned long int a; int k; h=0;
    While (‘<не конец файла>==<читать число в k>’);
    {switch k
    {case 1: h = h/0x 0001; break;
    case 2: h = h/0x 0002; break;
    case 3: h = h/0x 4; break;
    case 4: h = h/0x 8; break;
    case 5: h = h/0x 10; break;
    case 6: h = h/0x 20; break;
    case 7: h = h/0x 40; break;
    case 8: h = h/0x 80; break;
    …
    case 30: h = h/0x 2000 0000; break;
    case 31: h = h/0x 4000 0000; (- 1 на 31 месте) break;
    case 32: h = h/0x 8000 0000; (- 1 на 32 месте) break;
    }
    }
    return (h)
    }

    Мне кажется или весь смысл сводиться к h = h/2^(k-1)

    ApeNN, 21 Апреля 2012

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

    +128

    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
    #ifndef __KERNEL__
    /* Multicast groups - backwards compatiblility for userspace */
    #define SELNL_GRP_NONE		0x00000000
    #define SELNL_GRP_AVC		0x00000001	/* AVC notifications */
    #define SELNL_GRP_ALL		0xffffffff
    #endif
    
    enum selinux_nlgroups {
    	SELNLGRP_NONE,
    #define SELNLGRP_NONE	SELNLGRP_NONE
    	SELNLGRP_AVC,
    #define SELNLGRP_AVC	SELNLGRP_AVC
    	__SELNLGRP_MAX
    };
    #define SELNLGRP_MAX	(__SELNLGRP_MAX - 1)

    Linux 3.3.0
    include/linux/selinux_netlink.h

    myaut, 15 Апреля 2012

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

    +133

    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
    #include <stdio.h>
    
    float abs(float a) { return a > 0 ? a : -a; }
    
    int main() {
        float x, e, step = 1, summ = step;
        int i = 0;
        
        scanf("%f, %f", (printf("x, e: "), &x), &e);
        
        do summ += (abs(step *= x / ++i) > e) ? step : 0; while (abs(step) > e);
        
        printf("summ = %f\n", summ);
        
        return 0;
    }

    вычисление суммы ряда (1 + x/1! + x^2/2! + ... + x^n/n!), с заданной точностью

    igoreknog, 14 Апреля 2012

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    long long int temp;
    		temp=a-b;
    		if (temp<0) temp=temp*(-1);
    .....
    r = b*(2^g);

    Из работ студентов.
    Первый фрагмент - взятие по модулю.
    Второй - вызвал вопрос "почему неправильно работает возведение в степень?".

    startrack, 11 Апреля 2012

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

    +98

    1. 1
    enum { SIZEOF_INT_AS_STR = sizeof("4294967295,")-1 };

    Что это? :-O

    anmartex, 06 Апреля 2012

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

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    int str_fpos(char * in_str,char chr1) 
    {
       int i=0;
       char * pch = strchr(in_str,chr1);
       while (pch != NULL)
       {
          i = pch-in_str;//+1;
          break;
       }
       return i;
    }

    if-ом пользуются только трусы!!!

    anmartex, 06 Апреля 2012

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

    +130

    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
    int i,j;
    	char alph[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	//Подстановка по таблице 1
    	int S_there[26][8]={{1,0,0,1,1,0,0,1},{1,0,0,0,1,0,0,0},{1,0,1,0,1,0,1,0},{0,0,1,1,0,0,1,1},{1,1,1,0,0,0,0,1},
    {1,0,0,0,0,1,1,1},{1,1,1,1,1,1,1,1},{1,1,0,1,0,0,1,0},{0,1,1,1,1,0,0,0},{1,1,0,0,0,0,1,1},{1,0,1,0,0,1,0,1},{0,1,0,0,1,0,1,1},
    {0,0,0,1,1,1,1,0},{0,1,0,1,0,1,0,1},{1,1,0,0,1,1,0,0},{0,0,0,1,0,0,0,1},{1,1,0,1,1,1,0,1},{1,0,1,1,0,1,0,0},{0,0,1,0,1,1,0,1},
    {0,0,0,0,0,0,0,0},{0,1,1,0,0,1,1,0},{0,1,0,0,0,1,0,0},{1,1,1,1,0,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,0,1,0,0,1},{0,0,1,0,0,0,1,0}};
    	
    	char str[]="THIISATESTFILEFORCHECKINGCYPHERMODULE";
    	int len=strlen(str);
        	int num[len];//массив с порядковыми номерами
    	int vector[len][8];//массив с ОТ, переведённым в двоичные вектора длины 8
    
    	for (i=0; i< len; i++)//Присваиваем каждой букве порядковый номер (а=0,b=1 и т.д.)
    	{
    		num[i]=((strchr(alph, str[i])-alph)% 26 + 0x01);
    		num[i]--;
    	}
    
    	for (i=0; i<len; i++)//Меняем букву на двоичный вектор длины 8 согласно порядковому номеру
    	{
    		int number=num[i];//счётчик текста
    		for (j=0; j<8; j++)
    		{
    			vector[i][j]=S_there[number][j];
    		}
    	}
    	for (i=0; i<len; i++)//Вывод на экран ОТ
    	{
    		for (j=0; j<8; j++)
    		{
    			printf("%u",vector[i][j]);
    		}
    		printf(" %c\n",str[i]);
    	}

    Нашёл в своей очень старой лабе...Нужно было буквы на входе преобразовать в двоичные вектора (например, а=10011001, b=10001000 и т.д.) ну и дальше ковыряться с этими векторами...почему я категорически не захотел тогда использовать case - хз :)))

    Pecho, 29 Марта 2012

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

    +134

    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
    /* страйкер, почини trim */
      while (1)
        {
          file_ptr start;
          int i;
          long c;
    
          /* See if the next `string_min' chars are all graphic chars.  */
        tryline:
          if (stop_point && address >= stop_point)
    	break;
          start = address;
          for (i = 0; i < string_min; i++)
    	{
    	  c = get_char (stream, &address, &magiccount, &magic);
    	  if (c == EOF)
    	    {
    	      free (buf);
    	      return;
    	    }
    	  if (! STRING_ISGRAPHIC (c))
    	    /* Found a non-graphic.  Try again starting with next char.  */
    	    goto tryline;
    	  buf[i] = c;
    	}

    Раз уж вспоминаем дрѣвния говны

    Written by Richard Stallman <[email protected]>
    and David MacKenzie <[email protected]>.

    bugmenot, 26 Марта 2012

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