einfach für euch, schwer für mich-.-



  • Hallo Zusammen,

    ich hab hier mal folgendes für euch.
    Wie ihr erkennt, kann man hier 1-10 eingeben und er spuckt einen Tannenbaum aus, in verschieden höhen.

    Das was mir fehlt, ist wie ich den "Stamm" unten so hinbekomme, dass er immer in der mitte ist.

    Ihr könnt es ja mal starten dann wisst ihr was ich mein.
    Vieleicht könnt ihr mich auch berichtigen, bei den for schleifenbeschreibungen^^

    #include<iostream>
    using namespace std;
    
    int main()
    {
    	int hoehe; //integer
    	int leerzeichen; //integer
    
    	cout<<"Wie hoch soll der Baum werden?(1-10):"; // Abfage
    	cin>>hoehe; // Eingabe
    	system("cls"); // Clear der Console
    	cout<<"\n"; 
    
    	leerzeichen=hoehe-1; //"-1" dient dazu die leerzeichen und die hoehe in die "mitte" zu bringen, ansonsten würde der baum komplett auf die linke seite verschoben
    
    	if(hoehe<=10) //kontroll abfrage. alles was nicht zwischen 1-10 ist wird als falsch gewertet auch buchstaben.
    		{
    		for(int a=0, x=a; a<hoehe; a++) // for schleife - abfrage der höhe
    			{
    			for(int b=0; b<leerzeichen; b++) // for schleife - leerzeichen werden mit der höhe synkron abgeglichen
    			cout<<" ";
    
    			for(int c=0; c<x; c++) // for schleife für die spiegelung (wobei x die spiegelung ist)
    			cout<<"*";
    
    			x+=2; //spiegelt die eine hälfte des baumes, so das er pefekt in der mitte steht.
    			leerzeichen--; //sorgt dafür das die reihen synkron zum rand verlaufen.
    
    			cout<<"\n"; // ende des baums, damit "drücken sie eine taste..." nicht neben sondern unter dem baum steht.
    
    			}
    
    			cout<<"**\n"; // der Stamm
    			cout<<"**\n";
    			cout<<"**\n";
    		}
    
    	else
    		{
    		cout<<" Falscheingabe!\n"; // falscheingabe
    		cout<<"    nur 1-10\n\n";
    		}
    }
    

    Hoffe auf hilfe 😃

    mfg ~RaYmOn



  • Du zeichnest ja immer mindestens 2 Sternchen. Also ist die 1. Sternreihe des Stammes == Anfang = 1. Sternreihe.



  • Hahaha einer der Schüler bei uns im Betrieb hat eine solche Aufgabe bekommen :p

    Wohnst nicht zufällig in der Schweiz? 🙂



  • Bevor du mit cout<<"**\n"; den Stamm malst, mach doch eine Schleife die entsprechend viele Leerzeichen ausgibt um den Cursor so zu verschieben, dass der Baum in der Mitte ist.


Anmelden zum Antworten