Hilfe mit C



  • Ich habe probleme soetwas zu programmieren:

    es soll eine Zahl von 4 bis 40 eingegeben werden und dann ein Tannebaum ausgegeben werden! Bei diesem Beispiel sollte es eine 5 sein, weil der Tannebaum 5 Reihen besitzt. Bei einer höheren Zahl soll der Baum größer werden!

    ***
    *****
    *******
    *********
    |||
    |||

    THX.



  • Sorry...
    der Baum sollte natürlich so aussehen:

    ........
    ...
    ...
    ..
    ***..
    .*******.
    *********
    ...|||...
    ...|||...



  • das ist nicht soo schwer.
    tip: verschachtele mal schleifen.
    fang an, und zeig dann den Code, falls du nicht weiterkommst.



  • Sorry, ich weiß nicht wie ich hier 'Forum' den Quelltext formatieren kann!

    main()
    {
    int zahl, abbruch=1, i, j, zaehler=0;
    char zeichen1='*', zeichen2='.';

    do
    {
    printf("\nErwarte eine ganze Zahl zwischen 3 und 40 : ");
    scanf("%i", &zahl);

    if(zahl<=2 || zahl>=41)
    {
    printf("\nUnzulaessige Eingabe, bitte wiederholen!\n");
    abbruch=1;
    }
    else
    {
    for(i=1;i<=zahl;i++)
    {
    for(j=0;j<=zaehler;j++)
    {
    printf("%c", zeichen1);
    }
    zaehler = zaehler +2;
    printf("\n");
    }
    abbruch=2;
    }
    }
    while(abbruch<=1);
    }



  • Ich bekomme das mit den Punkten( . ) und Sternchen( * ) nicht so hin, wie ich es will!
    Bei dem Quelltext den ich gepostet habe, sieht der Baum so aus:
    *
    ***
    *****
    *******
    *********

    ich weiß nicht wie ich den Baum gleichmäßig bekomme! Also Punkte und Sterne vermischen!



  • Hallo, zum posten im Forum hier benutze die Code-Tags (oder die C++-Tags)...



  • void tannenbaum (int x)
    {
        int x2 = x, a, b, c = 1;
        for (a=0; a<x; a++, x2--, c+=2, putchar ('\n')){for (b=0; b<x2; b++, putchar (' '));for (b=0; b<c; b++, putchar ('*'));}
        for (a=0; a<x/3*2; a++, puts ("| |")) for (b=0; b<x-1; b++) putchar (' ');
    }
    


  • Tut mir leid, aber den Text versehe ich nicht!
    Das muss doch einfacher gehen? Warum eine Funktion?



  • #include <stdio.h>
    
    int main()
    {
    	int zahl, abbruch=1, i, j;
    	char zeichen1='*', zeichen2='.';
    	int start=0;
    	int stern= 1;
    
    	do
    	{
    		printf("\nErwarte eine ganze Zahl zwischen 3 und 40 : ");
    		scanf("%i", &zahl);
    
    		if(zahl<=2 || zahl>=41)
    		{
    			printf("\nUnzulaessige Eingabe, bitte wiederholen!\n");
    			abbruch=1;
    		}
    		else
    		{
    			start = zahl;		
    			for(i=1;i<=zahl;i++)
    			{
    				for (j=1;j<start;j++)
    					printf("%s", " ");
    
    				for(j=1;j<=stern;j++)
    				{
    					printf("%c", zeichen1);
    				}
    				start--;
    				stern +=2;
    
    				printf("\n");
    			}
    			abbruch=2;
    		}
    	}
    	while(abbruch<=1);
    }
    

    warst nah dran.



  • Gast23 schrieb:

    Tut mir leid, aber den Text versehe ich nicht!
    Das muss doch einfacher gehen? Warum eine Funktion?

    Probiers aus und mach was eigenes draus.



  • mindstorm schrieb:

    #include <stdio.h>
    int main()
    {
    .......

    Noch nicht mal ein Stamm dran. Wie öde.



  • @

    mindstorm schrieb:

    warst nah dran.

    Danke sehr!



  • Heiamann schrieb:

    Noch nicht mal ein Stamm dran. Wie öde.

    Der kommt noch!


Log in to reply