Xmas-tree



  • Will denn niemand ein Bäumchen posten?!
    Es ist doch Weihnachten, Möönsch!

    #include <stdio.h>
    
    #define W 80
    #define H 22
    #define T 19
    #define D 3
    
    int main(void)
    {
    	char buf[W+1]={0}; int n=W, i=0, j=4, inc=j, h;
    	while(i < W) 
    		buf[i++] = 'X';
    	printf("\n%*c\n", n/2, 'C');
    	for (i=0, h=0; h<T; h++, i++)	
    		printf("%*s\n", n/2+i, buf+W-(i*2+1)), i&&!(i%j)?i-=j/2,j+=inc:0;
    	for (; h<H; h++)	
    		printf("%*s\n", n/2+ D/2, buf+W-D);
    	printf("Xmas-tree %c 2012 Josef.", 0xB8);
    	return 0;
    }
    

    http://codepad.org/X5Hkij1S

    :xmas1: :xmas2: :xmas1:



  • Wieviel Jahre Programmiererfahrung braucht man eigentlich um sowas auf Anhieb richtig hinzubekommen?



  • Hübsch, ein Weihnachstbaum mit einem Halbmond als Spitze 😃

    Wie man sieht gibt es noch was anderes als Codepage 850

    :xmas2: :xmas1:



  • neider schrieb:

    Wieviel Jahre Programmiererfahrung braucht man eigentlich um sowas auf Anhieb richtig hinzubekommen?

    Auf Anhieb kriegt das so gut wie niemand hin, und wenn doch es es eher Glück als können. Ansonsten kann man sowas doch schon nach kurzer Lernzeit, ist ja auch eine beliebte Anfängeraufgabe.



  • Dann schon mit Kerzen und Geschenk:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main() {
    cout <<"                 o\n                 |\n               o X o\n               |XXX|\n"
    	   "               XXXXX\n            o XXXXXXX o\n            |XXXXXXXXX|\n            XXXXXXXXXXX\n"
    	   "         o XXXXXXXXXXXXX o\n         |xXXXXXXXXXXXXXX|\n         XXXXXXXXXXXXXXXXX\n "
    	   "     o XXXXXXXXXXXXXXXXXXX o\n      |XXXXXXXXXXXXXXXXXXXXX|\n      XXXXXXXXXXXXXXXXXXXXXXX\n"
    	   "                XXX\n                XXX       ~\n                XXX      XXX\n"
    	   "            XXXXXXXXXXX  XXX\n(c) 0x0ERROR\n";
    getch();
    }
    


  • @0x0ERROR
    Hier geht es um das richtige C und nicht um diesen Irrglauben mit Klassen und Objekten.
    Auch das conio.h führt dich vom richtigen Weg ab.

    Weil Weihnachten ist, sei dir verziehen. :xmas1: :xmas2:



  • 0x0ERROR schrieb:

    Dann schon mit Kerzen und Geschenk:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main() {
    cout <<"                 o\n                 |\n               o X o\n               |XXX|\n"
    	   "               XXXXX\n            o XXXXXXX o\n            |XXXXXXXXX|\n            XXXXXXXXXXX\n"
    	   "         o XXXXXXXXXXXXX o\n         |xXXXXXXXXXXXXXX|\n         XXXXXXXXXXXXXXXXX\n "
    	   "     o XXXXXXXXXXXXXXXXXXX o\n      |XXXXXXXXXXXXXXXXXXXXX|\n      XXXXXXXXXXXXXXXXXXXXXXX\n"
    	   "                XXX\n                XXX       ~\n                XXX      XXX\n"
    	   "            XXXXXXXXXXX  XXX\n(c) 0x0ERROR\n";
    getch();
    }
    

    error C2061: Syntaxfehler: Bezeichner 'namespace'
    warning C4218: Nicht dem Standard entsprechende Erweiterung: Mindestens Angabe einer Speicherklasse oder eines Typs erforderlich
    error C2065: 'cout': nichtdeklarierter Bezeichner
    error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'char [464]' ist
    warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
    warning C4013: 'getch' undefiniert; Annahme: extern mit Rückgabetyp int

    😃
    🤡



  • xmas fan schrieb:

    0x0ERROR schrieb:

    Dann schon mit Kerzen und Geschenk:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main() {
    cout <<"                 o\n                 |\n               o X o\n               |XXX|\n"
    	   "               XXXXX\n            o XXXXXXX o\n            |XXXXXXXXX|\n            XXXXXXXXXXX\n"
    	   "         o XXXXXXXXXXXXX o\n         |xXXXXXXXXXXXXXX|\n         XXXXXXXXXXXXXXXXX\n "
    	   "     o XXXXXXXXXXXXXXXXXXX o\n      |XXXXXXXXXXXXXXXXXXXXX|\n      XXXXXXXXXXXXXXXXXXXXXXX\n"
    	   "                XXX\n                XXX       ~\n                XXX      XXX\n"
    	   "            XXXXXXXXXXX  XXX\n(c) 0x0ERROR\n";
    getch();
    }
    

    error C2061: Syntaxfehler: Bezeichner 'namespace'
    warning C4218: Nicht dem Standard entsprechende Erweiterung: Mindestens Angabe einer Speicherklasse oder eines Typs erforderlich
    error C2065: 'cout': nichtdeklarierter Bezeichner
    error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'char [464]' ist
    warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
    warning C4013: 'getch' undefiniert; Annahme: extern mit Rückgabetyp int

    😃
    🤡

    Ist C++, kein C :xmas1:
    Edit: Dann eben in C:

    #include <stdlib.h>
    int main() {
    printf("                 o\n                 |\n               o X o\n               |XXX|\n"
    	   "               XXXXX\n            o XXXXXXX o\n            |XXXXXXXXX|\n            XXXXXXXXXXX\n"
    	   "         o XXXXXXXXXXXXX o\n         |xXXXXXXXXXXXXXX|\n         XXXXXXXXXXXXXXXXX\n "
    	   "     o XXXXXXXXXXXXXXXXXXX o\n      |XXXXXXXXXXXXXXXXXXXXX|\n      XXXXXXXXXXXXXXXXXXXXXXX\n"
    	   "                XXX\n                XXX       ~\n                XXX      XXX\n"
    	   "            XXXXXXXXXXX  XXX\n(c) 0x0ERROR\n");
    return 0;
    }
    

    0x0ERROR



  • Das Geschenk hat ja sogar eine Schleife, 👍
    wie niedlich! :p



  • 0x0ERROR schrieb:

    Dann eben in C: [...]

    C3861: 'printf': identifier not found
    


  • Swordfish schrieb:

    C3861: 'printf': identifier not found
    

    Woran der Fehler liegt weiß ich nicht. Ich habe nur C++ gelernt.

    0x0ERROR


  • Mod

    0x0ERROR schrieb:

    Swordfish schrieb:

    C3861: 'printf': identifier not found
    

    Woran der Fehler liegt weiß ich nicht. Ich habe nur C++ gelernt.

    http://www.cplusplus.com/reference/cstdlib/
    http://www.cplusplus.com/reference/cstdio/

    Das gilt aber auch in C++ :xmas1:



  • CJosef schrieb:

    Das Geschenk hat ja sogar eine Schleife

    Deins sogar mehrere, davon bis auf eine redundant:

    http://ideone.com/6DxHo0



  • Wutz schrieb:

    CJosef schrieb:

    Das Geschenk hat ja sogar eine Schleife

    Deins sogar mehrere, davon bis auf eine redundant:

    Double fault.
    Und das in nur einem Satz. 😃
    Zum einen beziehst du dich auf Schleifen eines Typs deren Anzahl in meinem Code genau 0 ist(Fault No. 1).
    Zum anderen mag ich keine amputierten Weihnachtsbäume(Fault No. 2).
    :xmas1:



  • char const * q = "0031 $030 :2$025 s4e3$N4e027 R3$F4$F029 6$028 @2$P*2$B027 z$#\"2 $#$b027 \" d3 'N \"028 @\"5 ?r026 xF .7 \"N023 .$> Pbd.R7 `$021 $*3 '*\"3$2 uoP3*~022 #N2o \"?$N\"3 #oL025 f7 o$#2$\"e.024 $2 @b4 hoR2$r ^\"2$b021 .M3 ?B$E3 *.B2$7 .R019 .*5 *\\ *.d*R9 2.*016 2o#5 2oL4 d#R.5 P2#~016 $c4 .2\"P#$2 @3 P5 k018 R$r 2'?L2$2 P2 \"r5 'N020 ^$ \"3$` $5.JL5 \"N.018 .$\11 * Pb\"LR6 $2.015 2.* d*R5 xr4 'PFN2$3 .k4 \"5*.012 od#\"3 d#*.2 \"*2$P~3 \"?$*\" '#3$\"7 u\"09 e2\"6 f3 M3 @F\"$2 ec7 x$\"$.5 :\"09 M8 >2 \"d7 4$?$11 .2$F`010 \"P2.2 .$5.$L 2$.d2$. \"3 @#B2$3 $E.013 '2*2.2 *3 R2.2$ `R$*k.2 fdM2$>5 *2.015 J\"7 *k3$~2 \"*$2*o$o2$P8 '*2o.014 P11 #8 \"3$#*o10 >2 '4#*4o011 .e\"12 :e2$e.2 FB2 ^\"$P2 :2$s :e@$2e8 s\"09 $P` MT>4 $P2$k \"$\"?$B @\"#N6 CxN2$> .3$7 .P06 M$~3 J\2#3 2dN>2$2 .d$.$d3 @&6 `3$2 F2 .B2.3$*02 .3*5 :3 JM3 *d2$*.2$.P2 M2 .Pb5 M10 2*.02 \"2o6 J2 .dP4 ud2$od#3 $6o$2 2o$2o11 3#ou05 \"4#$b5e$.'$2eP#~8 2\"6 3$.4 e3$o7 #h4e08 :\"4 \" z$r ^12 o$N5 '\"2 \"3 d$z>2$13 3\"#3$07 .~6 F$d$B7 r4 F @#$.7 2.3 $B2$P MT16 $05 .*2 $5 B 2$B5 .J$2.2 hP3$F5 .'PB$7 J~2#13 .d~03 .P2 *3$*4 \"*\"7 3$4 #2*~6 hdM2$>5 <3 JM7.5*0 .P5 $#*k7 .o#>2 P\" \"k3 2.9 '2$P6 d2 .JP'h03\"hr ^8 xe2\"2 >10 2\"c11 2e4 @b5e$.)06 3\"t4$F\"6 M8 $`3 R10 > \"$r5 \"5 \"c030 10o030 z8 z030 z.,ze.3$z000";
    
                   #\
                include\
               <stdio.h>
              void b(char w,
           char r){ putchar(r);
    	     --w?b (w,r):0;}
         int main() {char w,r=0,
           p; while( *(q+=r)){
         w=49<=*q && *q<=57?(48<=
       q[1]&&q[1]<=57 ? (p=q[2],r=3,
     (*q-48)*10+*(q+1)-48) : (p=q[1],
    r=2,*q-48)):(p=*q,r=1) ;b(w,*q-48?
                p:'\n');}}
    

    http://ideone.com/CQEMob



  • Wow! 😮
    Der ist echt super! 👍

    :xmas1:



  • Enorm, Swordfish 👍 👍 👍


Anmelden zum Antworten