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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    i = 0;
      while ((p_c = strchr(&str[i], c)) != NULL) {
        k = p_c - str;           
        for (j = 0;  j < k - i;  j++)
          putchar(' ');
        putchar('*');              
        i = k + 1;               
      }
      putchar('\n');

    очень простой способ подчеркнуть определённые символы в массиве знаков

    taburetka, 22 Декабря 2012

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

    +127

    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
    #include <stdio.h>
    
    int Sravn (int a, int b)
    {
    if (a=b)
    {return 1;}
    else 
    {return 0;}
    }
    
    int main()
    {
         int A[5]={1, 4, 7, 4, 4}, rez1, rez2, rez3, rez4, rez5;
         int i=0;
         rez1=Sravn(A[i], A[i+1])+Sravn(A[i], A[i+2])+Sravn(A[i], A[i+3])+Sravn(A[i], A[i+4]);
         rez2=Sravn(A[i+1], A[i])+Sravn(A[i+1], A[i+2])+Sravn(A[i+1], A[i+3])+Sravn(A[i+1], A[i+4]);
         rez3=Sravn(A[i+2], A[i])+Sravn(A[i+2], A[i+1])+Sravn(A[i+2], A[i+3])+Sravn(A[i+2], A[i+4]);
         rez4=Sravn(A[i+3], A[i])+Sravn(A[i+3], A[i+1])+Sravn(A[i+3], A[i+2])+Sravn(A[i+3], A[i+4]);
         rez5=Sravn(A[i+4], A[i])+Sravn(A[i+4], A[i+1])+Sravn(A[i+4], A[i+3])+Sravn(A[i+4], A[i+2]);
         if (rez1>rez2 && rez1>rez3 && rez1>rez4 && rez1>rez5)
         {printf ("/d", A[i]);}
         else if (rez2>rez1 && rez2>rez3 && rez2>rez4 && rez2>rez5)
         {printf ("/d", A[i+1]);}
         else if (rez3>rez2 && rez3>rez1 && rez3>rez4 && rez3>rez5)
         {printf ("/d", A[i+2]);}
         else if (rez4>rez2 && rez4>rez3 && rez4>rez1 && rez4>rez5)
         {printf ("/d", A[i+3]);}
         else if (rez5>rez2 && rez5>rez3 && rez5>rez1 && rez5>rez4)
         {printf ("/d", A[i+4]);}
         return 0;
         }

    Ищет в массиве наиболее часто повторяющийся элемент. Написано мною. Нифига не работает, но ошибок не выдает.

    MurMur, 16 Декабря 2012

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

    +140

    1. 1
    for (size_t i=cnt-1; i<cnt; --i)

    цикол наоборот для типа без знака

    TarasB, 13 Декабря 2012

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    if ((frequency < config->frequency_max) || (frequency > config->frequency_min)) {
          printk(KERN_ERR "%s: Frequency beyond limits, frequency=%d\n", __func__, frequency);
          return -EINVAL;
        }

    Коллега отыскал где-то в недрах dvb подсистемы, в драйвере mopll'ки TDA6651.

    Necromant, 12 Декабря 2012

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

    +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
    #include <stdio.h>
    #include <conio.h>
    #include <windows.h>
    
    int main()
    {
    	nachalo: system("cls");
    	int a;
    	printf("Write first number...");
    	scanf("%i", &a);
    
    	int b;
    	printf("Write second number...");
    	scanf("%i", &b);
    
    	int res1;
    	res1=a+b;
    
    	int res2;
    	res2=a-b;
    
    	int res3;
    	res3=a*b;
    
    	float res4;
    	res4=(float)a/b;
    
    	int res5;
    	res5=a*a;
    
    	int res6;
    	res6=b*b;
    
    	printf("\nSumm of %i + %i = %i\n", a, b, res1);
    	printf("Difference of %i - %i = %i\n", a, b, res2);
    	printf("Production of %i * %i = %i\n", a, b, res3);
    	printf("Private of %i / %i = %.4f\n\n", a, b, res4);
    	printf("Square of %i is %i\n", a, res5);
    	printf("Square of %i is %i\n\n", b, res6);
    
    	int max;
    	max = (b>a) ? b:a;
    	printf("The greatest number of %i and %i is %d\n\n", a, b, max);
    
    	int choice;
    	printf("To run program again, press number 1, else numbers \nor symbols will close the program...\n> ");
    	scanf("%i", &choice);
    	if (choice == 1)
    	{
    		goto nachalo;
    	}
    	else (choice != 1);
    	{
    		return 0;
    	}
    }

    Калькулятор. Nuff said

    heivizi, 11 Декабря 2012

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

    +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
    /* В комментариях то что хотел Автор от своей программы 	*/
    /* Радует однако, что она компилируется и во время		*/
    /* работы не выдает ни каких ошибок				*/
    /* Порядок операторов сохранен.					*/
    /* Тот же код только вырезанно "лишнее".			*/
    
    /* Эта ф-ия находится в другом cpp файле */
    float f(float x, float y)
    {
    	/* Тут что-то происходит с x и y */
    	return x, y;
    }
    
    void main(void)
    {
    	float **m;
    
    	/* ... */
    	float f(float x, float y);
    	/* ... */
    
    	/* Задается N					*/
    	float N;
    	/* ... */
    
    	/* Выделяется память под массив m[N][2] 	*/
    	m = (float **)malloc(sizeof(float*));
    	for(i = 0; i < N; i++)
    	{
    		m[i] = (float*)malloc(sizeof(float*) * 2);
    	}
    
    	/* ... */
    	for(i = 0; i < N; i++)
    	{
    		/* Массив заполняется числами						*/
    		/* В m[i][] должны быть записанны числа x, y измененый ф-ей f 		*/
    		/* т. е.	m[i][0] = xf						*/
    		/*		m[i][1] = yf						*/
    		for(j = 0; j < 2; j++)
    		{
    			m[i][j] = f(x, y);
    			/* ... */
    		}
    	}
    
    	/* ... */
    }

    dreesto, 28 Ноября 2012

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

    +128

    1. 1
    "%s[@%s='%s']"

    Аццкий смайлик! Сборка запроса XPath для поиска элементов в XML DOM по значениям, переданным из другой функции.

    sprintf(str,"%s[@%s='%s']",elemPath,attrName,value);

    GoblinAlchemist, 27 Ноября 2012

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

    +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
    #include <stdlib.h>
     
    struct no_matter
    {
        int some_field;
    };
     
    struct matter *do_stuff(void)
    {
        struct no_matter *m = calloc(1, sizeof *m);
        return m;
    }
     
    int main(void)
    {
        struct no_matter *m = do_stuff();
        free(m);
        return 0;
    }

    Сегодня выполняю роль гумна. В сишке можно возвращать указатель на непонятно откуда взявшуюся необъявленную ранее структуру и код будет компиляться (ладно хоть пишет невнятные ворнинги, только благодаря им нашёл опечатку в одной букве в имени структуры в рабочем коде). Понятно, что все указатели одинаково числа, но всё равно как-то некрасиво. Хацкелисты негодуэ, даёшь монаду Ptr

    http://ideone.com/3SABHW

    roman-kashitsyn, 27 Ноября 2012

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

    +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
    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
    #include<stdio.h>
    #include<math.h>
     
    int main()
    {
    long long a1,a2,a3,a4,t,p,l,m1,m,d1,d2,d3,d4,c1,c2,c3,c4,n,r;
    double po;
     
    m=1000000006;
    scanf("%lld",&t);
    while(t--)
         {scanf("%lld",&n);
         a1=1;a2=1;a3=1;a4=0;
         d1=1;d2=0;d3=0;d4=1;
         
         p=n-2;
    while(p>0)
         {    if(p%2!=0)
            { c1=((d1*a1)%m+(d3*a3)%m);
              c2=((d1*a2)%m+(d2*a4)%m);
              c3=((d3*a1)%m+(d4*a3)%m);
              c4=((d3*a2)%m+(d4*a4)%m);
              d1=c1;d2=c2;d3=c3;d4=c4;
            }
              c1=((a1*a1)%m+(a2*a3)%m);
              c2=((a1*a2)%m+(a2*a4)%m);
              c3=((a3*a1)%m+(a4*a3)%m);
              c4=((a3*a2)%m+(a4*a4)%m);
              a1=c1;a2=c2;a3=c3;a4=c4;
              p=p/2;
         }
     l=((d1*1)%m+(d2*1)%m)%m;m1=((d3*1)%m+(d4*1)%m)%m;
     
    po=pow(2,l);
    r=llrintl(po)%(m+1);
     
     
    printf("%lld\n",r);
    }
    return 0;
       }

    Fai, 26 Ноября 2012

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

    +133

    1. 1
    2. 2
    3. 3
    #include <math.h>
     ...
    result = (thisCos ? cos : sin)(3.140);

    Коллега занимается инновациями в Сколково, так они там изобрели операцию NOT на континууме.

    serpinski, 24 Ноября 2012

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