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

    +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
    switch (n)
    {
        case k:
            some_action;
        case k - 1:
            some_action;
        ...
        case 2:
            some_action;
        case 1:
            some_action;
    }

    - когда может быть удобно использование switch без break'ов?
    - например, когда хотите повторить операцию сколько-то раз

    nagato, 14 Сентября 2010

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

    +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
    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
    UINT32 GetHostName(char *hostName, UINT32 hostNameBufSize)
    {
            if (hostName == NULL ){
                    OSALTRACE(OSAL_ERROR, ("Error: Input parameter hostName(null)."));
                    return -1;
            }
    
            FILE *fp = NULL;
            static char buffer[512];
            char tag[64];
    
            // hope this size will be OK for one line to read from the fileOB
            char line[1000];
            char *linep=line;
    
            int buffSize = sizeof(buffer);
    
            int found = 0;
    
    
            fp = fopen("/etc/resolv.conf", "r");
    
            if ( fp == NULL)
            {
    
                    OSALTRACE(OSAL_ERROR, ("failed to open resolver config file."));
                    return -1;
            }
    
            while ( ((*linep=getc(fp)) != EOF) && !found )
            {
                    if (*linep++ == '\n')
                    {
                            *linep = '\0';
                            sscanf(line, "%s %s", tag, buffer);
                            if (tag[0] && (!strcmp(tag, "search") || !strcmp(tag, "domain") ) ) {
                                    found = 1;
                                    break;
                            }
                            linep = line;
                    }
            }
    
            fclose(fp);
    
            if ( found )
            {
                    strcpy(hostName,buffer);
                    OSALTRACE(OSAL_DEBUG, ("DHCP domain is  %s.", buffer));
            }
            else
            {
                    OSALTRACE(OSAL_ERROR, ("Could not find dhcp domain in resolv.conf."));
                    return -1;
            }
    
            return !found;
    }

    Intel WiMAX Network Service, не какая-то пионерская поделка...

    raorn, 13 Сентября 2010

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

    +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
    if ( found )
            {
                    strcpy(hostName,buffer);
                    OSALTRACE(OSAL_DEBUG, ("DHCP domain is  %s.", buffer));
            }
            else
            {
                    OSALTRACE(OSAL_ERROR, ("Could not find dhcp domain in resolv.conf."));
                    return -1;
            }
    
            return !found;
    }

    Intel WiMAX Network Service, не какая-то пионерская поделка...

    raorn, 13 Сентября 2010

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

    +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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    #include <iostream>
    #include <windows.h>
    #include <pthread.h>
     
    void * func_MyThread(void * args)
    {
     
    int S=0; //
     
       int i;
     
       int j;
     
    int k;
     
    pthread_t MyThread;
     
    pthread_create(&MyThread,NULL,func_MyThread,NULL); 
     
    for (i=1; i <=8; i++)//
     
    pthread_join(MyThread,NULL);
     
    {
     
        S +=i+1; //
    }
     
       pthread_create(&MyThread,NULL,func_MyThread,NULL); 
     
     for (j=4; j <=12; j++)//
     
    pthread_join(MyThread,NULL);
     
    {
     
    S+=j; //
     
    }
     
    pthread_create(&MyThread,NULL,func_MyThread,NULL);
     
    for (k=5; k<=20; k++)
     
    pthread_join(MyThread,NULL);
     
    {
     
        S += k*(2*k-1); 
    }
     
    {
     
    std::cout <<"S= \t" <<S; //
     
    return 0;// 
    }

    студент решал задачу по распределенному программированию.
    все очень серьезно.

    niXman, 09 Сентября 2010

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

    +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
    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
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    int zerocheck(float a,float b,float c,int d){
    	if(a==0){
    		if(b==0){
    			if(c==0)return 0;
    			else return 1;
    		}else{
    			if(d==1){
    				y_1=c/b;
    				return 2;
    			}else{
    				y2=c/b;
    				return 2;
    			}
    		}
    	}else{
    		if(b==0){
    			if(d==1){
    				x1=c/a;
    				return 3;
    			}else{
    				x2=c/a;
    				return 3;
    			}
    		}else{
    			return 4;
    		}
    	}
    }
    
    int main() {
    	float a,b,c,d,e,f;
    	int ch1,ch2;
    .....
    	ch1=zerocheck(a,b,c,1);
    	ch2=zerocheck(d,e,f,2);
    	if(ch1==1)printf("\nNo answer. 0*X + 0*Y = %f",c);
    	if(ch2==1)printf("\nNo answer. 0*X + 0*Y = %f",f);
    	if(ch1==0 && ch2==0)printf("\nAny variable is answer!");
    	if(ch1==0 && ch2==2)printf("\nX - any. Y = %f",y2);
    	if(ch1==0 && ch2==3)printf("\nX = %f. Y - any",x2);
    	if(ch1==0 && ch2==4)printf("\n%f*X + %f*Y = %f",d,e,f);
    	if(ch1==2 && ch2==0)printf("\nX - any. Y = %f",y_1);
    	if(ch1==2 && ch2==2){
    		if(y_1==y2)printf("\nX - any. Y = %f",y_1);
    		else printf("\nY1 (%f) != Y2 (%f)",y_1,y2);
    	}
    	if(ch1==2 && ch2==3)printf("\nX = %f. Y = %f",x2,y_1);
    	if(ch1==2 && ch2==4){
    		y2=y_1;
    		x2=(f-e*y2)/d;
    		printf("\nX = %f. Y = %f",x2,y_1);
    	}
    	if(ch1==3 && ch2==0)printf("\nX = %f. Y - any",x1);
    	if(ch1==3 && ch2==2)printf("\nX = %f. Y = %f",x1,y2);
    	if(ch1==3 && ch2==3){
    		if(x1==x2)printf("\nX = %f. Y - any",x1);
    		else printf("\nX1 (%f) != X2 (%f)",x1,x2);
    	}
    	if(ch1==3 && ch2==4){
    		x2=x1;
    		y2=(f-d*x2)/e;
    		printf("\nX = %f. Y = %f",x1,y2);
    	}
    	if(ch1==4 && ch2==0)printf("\n%f*X + %f*Y = %f",a,b,c);
    	if(ch1==4 && ch2==2){
    		y_1=y2;
    		x1=(c-b*y_1)/a;
    		printf("\nX = %f. Y = %f",x1,y2);
    	}
    	if(ch1==4 && ch2==3){
    		x1=x2;
    		y_1=(c-a*x1)/b;
    		printf("\nX = %f. Y = %f",x2,y_1);
    	}
    	if(ch1==4 && ch2==4){
    		if(a/b==d/e)printf("\nNo answer. Lines would be parallel or qeual.");
    		else{
    			x1=(b*f-c*e)/(d*b-a*e);
    			y_1=(c-a*x1)/b;
    			printf("\nX = %f. Y = %f",x1,y_1);
    		}
    	}
    	printf("\n");
    	print_lines();
    	return 0;
    }

    Hello, C!

    Second_Fry, 07 Сентября 2010

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

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    }
                               }
                            }
                         }
                      }
                   }
                }
             }
          }
       }

    Да, у нас есть и такое.

    nil, 01 Сентября 2010

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

    +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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    static const char*const nullp,From_[]=FROM,exflags[]=RECFLAGS,
     drcfile[]="Rcfile:",pmusage[]=PM_USAGE,*etcrc=ETCRC,
     misrecpt[]="Missing recipient\n",extrns[]="Extraneous ",ignrd[]=" ignored\n",
     pardir[]=chPARDIR,curdir[]={chCURDIR,'\0'},
     insufprivs[]="Insufficient privileges\n",
     attemptst[]="Attempt to fake stamp by";
    char*buf,*buf2,*loclock,*tolock;
    const char shell[]="SHELL",lockfile[]="LOCKFILE",newline[]="\n",binsh[]=BinSh,
     unexpeof[]="Unexpected EOL\n",*const*gargv,*const*restargv= &nullp,*sgetcp,
     pmrc[]=PROCMAILRC,*rcfile=pmrc,dirsep[]=DIRSEP,devnull[]=DevNull,
     lgname[]="LOGNAME",executing[]="Executing",oquote[]=" \"",cquote[]="\"\n",
     procmailn[]="procmail",whilstwfor[]=" whilst waiting for ",home[]="HOME",
     host[]="HOST",*defdeflock,*argv0="",errwwriting[]="Error while writing to",
     slogstr[]="%s \"%s\"",conflicting[]="Conflicting ",orgmail[]="ORGMAIL",
     exceededlb[]="Exceeded LINEBUF\n",pathtoolong[]=" path too long";
    char*Stdout;
    int retval=EX_CANTCREAT,retvl2=EXIT_SUCCESS,sh,pwait,lcking,rcstate,rc= -1,
     ignwerr,lexitcode=EXIT_SUCCESS,asgnlastf,accspooldir,crestarg,skiprc,
     savstdout,berkeley,mailfilter,erestrict;
    size_t linebuf=mx(DEFlinebuf+XTRAlinebuf,1024/*STRLEN(systm_mbox)<<1*/);
    volatile int nextexit;			       /* if termination is imminent */
    pid_t thepid;
    long filled,lastscore;	       /* the length of the mail, and the last score */
    char*themail,*thebody;			    /* the head and body of the mail */
    uid_t uid;
    gid_t gid,sgid;

    Источник: http://opensource.apple.com/source/procmail/procmail-1.2/procmail/src/procmail.c

    sanchousf, 31 Августа 2010

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #define MIN(i1, i2) (i1 < i2 ? i1 : i2)
    
    int mr_word_compare(const char* r1, int s1, const char* r2, int s2)
    {
        int l1 = strchr(r1, ' ') - r1;
        int l2 = strchr(r2, ' ') - r2;
        return strncmp(r1, r2, MIN(l1, l2));
    }

    пердложенный вариант исправления #4093 (http://govnokod.ru/4093)

    vayerx, 25 Августа 2010

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

    +137

    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
    #include <stdio.h>
    
    #define template_pair_declare(x,y) \
    struct x##_##y##_pair \
    { \
        x first; \
        x second; \
    }
    
    #define template_pair(x,y) struct x##_##y##_pair
    
    #define template_mkpair_declare(x,y) \
    template_pair(x,y) mkpair_##x##_##y(x _first,y _second) \
    { \
        template_pair(x,y) res;res.first=_first;res.second=_second; \
        return res; \
    }
    
    #define template_mkpair(x,y) mkpair_##x##_##y
    
    template_pair_declare(int,int);
    template_pair_declare(float,float);
    
    int main()
    {
        template_pair(int,int) ip;
        scanf("%d%d",&ip.first,&ip.second);
        printf("Sum: %d\n",ip.first+ip.second);
        template_pair(float,float) fp;
        scanf("%f%f",&fp.first,&fp.second);
        printf("Sum: %f\n",fp.first+fp.second);
        return 0;
    }

    Шаблонные структуры и шаблонные функции для труЪ сишников.

    frp, 24 Августа 2010

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

    +144

    1. 1
    2. 2
    //massiv[i]=C1^2*(a*i+b)+C2*(a^2*i-b)+(b-a*i)^-12.5; //почемуто не работает
                            massiv[i]=C1*C1*(a*i+b)+C2*(a*a*i-b)+1/((b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*(b-a*i)*sqrt(b-a*i));

    Нашёл проектик :)
    Универ. 1 курс. Лаба по С. Не работает - будем делать кал.
    Интересно, если бы степень была -125, то там было бы 125 умножений?

    XyHb, 23 Августа 2010

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