bei der eingabe der ziffern solltest du am besten nur einstellige ziffern erlauben weil das dreieck, wenn es zu groß ist, evtl fehlerhaft angezeigt werden könnte. dies kannst du mit getch() machen. ich hab das programm einfach mal geschrieben. hab eine schleife gemacht die so oft durch läuft bis die taste x anstelle einer zahl gedrückt wird. werd dir aber nur die anfänge verraten, weil wir keine schulaufgaben lösen sollen…
// hier funktion die das dreieck ausgibt, parameter : gedrückte taste
/\* da die gedrückte taste nicht wie auf der tastatur eingegeben erscheint muss die zahl noch umgerechnet werden in die richtige zahl\*/
int variable = eingegebene zahl - 48;
if ((variable % 2) == 0) variable++; // zahl ungerade machen
//jetzt kommen die 3 schleifen
[schleife] i = 1; solange i kleiner oder gleich variable ist wird i um 2 erhöht und folgendes getan:
[schleife] j = 0; solange j kleiner als variable - i / 2, wird ein leerzeichen eingefügt /\* dadurch dass i immer größer wird, kommt bei der berechnung immer die richtige leerzeichenanzahl raus, wenn der benutzer also 9 eingegeben hat beispielsweise käme bei der berechnung ((9 - 1) / 2) = 8/2 = 4, nächster schleifendurchlauf i = 3: ((9 - 3) / 2) = 6 / 2 = 3 usw \*/
[/schleife]
[schleife] k = 0; solange k kleiner i ist erhöhe k und füge ein '\*' ein // gebe i mal einen stern aufm bildschirm aus - das sollte ja wohl klar sein
[/schleife]
cout= '1')) führe die funktion mit dem parameter key aus
/\* das steht vor der tastenabfrage weil es sonst gelöscht wär bevors angezeigt wird \*/
key = getch();
} while (key != 'x');
das is ja ganz schön kompliziert geworden, ich hoffe du steigst da durch, ich wollt dir das jetz nich ZU einfach machen das umsetzen in c++ code musst du schon selbst machen
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]