1. C++ / Говнокод #3548

    +163

    1. 1
    smart_ptr<const AbstractElanos> pointy;struct Intializer{Intializer(void){pointy=new Elanos;};}initer;

    Согласно проектного решения

    smart_ptr<const AbstractElanos> pointy=new Elanos;

    писать нельзя. Конструктор из поинтера не определён.
    Ну а народ любит размещать данные глобально и сразу инициализировать. Последствия весьма наглядны.

    Говногость, 23 Июня 2010

    Комментарии (21)
  2. C++ / Говнокод #3542

    +160

    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
    //
    Fraction Fraction::operator +(Fraction &ob)
    {
    	int f;int d; int c; int k; int l; int z;
    	char*p; char*x;
    	p=new char; x=new char;
    	Fraction tempOb;
    	if(strcmp(znam, ob.znam)==0)
    	{
    		f=atoi(tempOb.chisl);
    		d=atoi(ob.chisl);
    		c=atoi(chisl);
    		f=d+c;
    		k=atoi(tempOb.znam);
    		l=atoi(znam);
    		k=l;
    		p=itoa(f,p,10);
    		x=itoa(k,x,10);
    		strcpy(tempOb.chisl,p);
    		strcpy(tempOb.znam,x);
    	}
    	else
    	{
    		f=atoi(tempOb.chisl);
    		d=atoi(ob.chisl);
    		c=atoi(chisl);
    		k=atoi(ob.znam);
    		l=atoi(znam);
    		f=c*k+d*l;
    		z=atoi(tempOb.znam);
    		z=l*k;
    		p=itoa(f,p,10);
    		x=itoa(z,x,10);
    		strcpy(tempOb.chisl,p);
    		strcpy(tempOb.znam,x);
    	}
    	tempOb.operator ~();
    	return tempOb;
    }
    //

    Нашел баг с переполнением, если вводишь слишком большие числа. Пытаюсь сделать через char. Работает. Но такие фрагменты кода убивают. Реально сделать легче, а еще лучше если сразу через int?

    ForEveR, 23 Июня 2010

    Комментарии (15)
  3. C++ / Говнокод #3539

    +164

    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
    list::list(FILE*f,FILE*f1){
        first=(starosta*)new student;
        rea=first;
        int i=0,j;
        for(j=0;j<5;j++){
            if (i) {
                rea->next=(starosta*)new student;
                rea=rea->next;
            }
            i=1;
            fscanf(f,"%d",&(rea->num));
            fscanf(f,"%s",rea->fam);
            fscanf(f,"%d",&(rea->stip));
            rea->flag=0;
        }
        cur=(starosta*)rea;
        for(j=0;j<3;j++){
            cur->next=new starosta;
            cur=(starosta*)cur->next;
            cur->flag=1;
            fscanf(f1,"%d",&(cur->num));
            fscanf(f1,"%s",cur->fam);
            fscanf(f1,"%d",&(cur->stip));
            fscanf(f1,"%d",&(cur->kolvo));
            cur->next=NULL;
        }
    }

    классный конструктор... тут много приколов

    tony, 22 Июня 2010

    Комментарии (17)
  4. C++ / Говнокод #3538

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    switch(c=getchar()){
        case '1': l+1; break;
        case '2': l+2; break;
        case '3': printf("\n Spisok:");l.print_all(); break;
        case '4': l-5; break;
    }

    кто угадает куда девается результат сложения и зачем оно надо пусть возьмет с полки пирожок

    tony, 22 Июня 2010

    Комментарии (55)
  5. C++ / Говнокод #3537

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    if (cur1!=NULL){
    	while(cur1!=NULL){
    	...
    }

    Вот такие вот потрясающие проверки в духе "нуавдруг?"

    tony, 22 Июня 2010

    Комментарии (14)
  6. C++ / Говнокод #3531

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    #               define False (0)//!!!!!!!!!!!!!!
    #               define True (!(False))//!!!!!!!!
    #               define Default (~(False))//!!!!

    printf("%s\n", typeid(False).name());
    printf("%s\n", typeid(True).name());
    True и False имеют разные типы.

    Говногость, 21 Июня 2010

    Комментарии (11)
  7. C++ / Говнокод #3530

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    char * Dictionary::GetWord(int index)
    {
    	return (char *)dictionary[index].c_str();
    }

    Свежее из кандидатских заданий

    Lexey, 21 Июня 2010

    Комментарии (15)
  8. C++ / Говнокод #3523

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    switch (today) {
          case 1:
             cout << "It's Monday" << endl;
             break;
          default: 
             cout << "Not Monday" << endl;
       }

    классика в исполнении MSDN

    glook, 21 Июня 2010

    Комментарии (33)
  9. C++ / Говнокод #3519

    +152

    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
    #include <fstream>
    using namespace std;
    #define ES EXIT_SUCCESS
    #define FOR(i___,___n) for (int i___=0; i___<(int)___n; i___++)
    #define RFOR(i__,__n,_n)  for (int i__=__n; i__>=_n; i__--)
    #define or(i__,__s) fstream i__((char*)__s)
    #define ow(i__,__s) ofstream i__((char*)__s)
    #define MEM(a,b) a=new char[b]
    #define MEM1(a,b) a=new char*[b]
    #define RFOR1(i__,_i,__n,_n)  for (int i__=__n,  _i=_n; i__>=_n; i__--,_i++)
    int N,L,D;
    char **F, *W;
    int main()
    {	
    	or(in,"input.txt");	ow(out,"output.txt");
    	in>>N>>L>>D;
    	MEM(W,N),MEM1(F,N+1), in.get();
    	FOR(i,N-L+1)	W[i]='0';
    	FOR(i,L) W[N-L+i]=in.get();
    	FOR(i,N+1)	MEM(F[i],2), F[i][0]=F[i][1]=0;
    	F[0][0]=1;
    	RFOR1(j,i,N-1,0)
    		if (W[j]=='0')
    			F[i+1][1]=F[i][1],	F[i+1][0]=(F[i][0] + F[i][1])%D;
    		else
    			F[i+1][1]=(F[i][1] +F[i][0])%D,	F[i+1][0]=F[i][0];
    	out<<(int)F[N][0];
    	return ES;
    }

    jte, 20 Июня 2010

    Комментарии (2)
  10. C++ / Говнокод #3518

    +170

    1. 1
    const volatile void

    Тибетская философия С++. Постоянная изменчивая пустота.

    Говногость, 20 Июня 2010

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