Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Moin!

Erstmal hi@all, bin Frischling und noch ein wenig schüchtern.. :D

Bin nicht mehr ganz der C++ Neuling, aber im Moment häng ich grad ein wenig.. Ich möchte eine kleine Funktion schreiben die eine Integerzahl und ein Zeichen nimmt und mir daraus ein Quadrat bastelt. Das ganze würde dann in etwa so aussehen:

Zahl: 6

Zeichen: *

******

* ---- *

* ---- *

* ---- *

* ---- *

******

(' - ' = Leerzeichen)

Ich soll die ganze Sache mit 2 for-Schleifen realisieren, bei mir sind es mittlerweile 4 und es passiert immer noch nicht was passieren soll.. :rolleyes:

Es ist mir zwar jetzt schon peinlich, aber hier ist mal mein momentaner Code.

int design2(int zahl, char zeic)

{

	for (int i=1;i<=zahl;i++)

	{

		cout << zeic;

	}

	cout << endl;

	for (int j;j<=(zahl-2);j++)

	{

		cout << zeic;

		for (int k=1;k<=(zahl-2);k++)

		{

			cout << " ";

		}

		cout << zeic << endl;

	}

	for (int l=1;l<=zahl;l++)

	{

		cout << zeic;

	}


	return 0;

}
Hab wahrscheinlich nur wieder zu kompliziert und um 1000 Ecken gedacht. Ich hoffe jemand von euch hat Erbarmen mit meiner Wenigkeit.. Gruß, die kleine (auf der Leitung stehende) Echse EDIT: .. -_- .. Hab meinen Fehler grad gefunden..
for (int j[COLOR=RoyalBlue]=1[/COLOR];j<=(zahl-2);j++)

Wäre trotzdem nett wenn mir jemand eine vielleicht kürzere Variante aufschreiben könnte, 4 Schleifen sind schon zu viel..

Geschrieben


#include <iostream>


using namespace std;


int design2(int seite, char z)

{

	for (int i = 0; i < seite; i++)

	{

		cout << z;

		for (int j = 2; j < seite; j++)

		{

			if (i == 0 || i == seite - 1)

				cout << z;

			else

				cout << " ";

		}

		cout << z << endl;

	}

	return 0;

}


void main()

{

	design2(12,'*');


	cin.get();

}

wenn du Probleme mit Verständnis hast, meld dich einfach :)

Gruß

Geschrieben

Wenn du es so kryptisch machen willst, dann verwende doch

putc(0x0a,stdout);

für eine neue Zeile

und putc(0x20,stdout);

für ein Leerzeichen

und putc((int)z,stdout);

für das variable Zeichen. :D

Für irgendwas ist C ja gut *lach

Geschrieben

Hello again!

Wäre net wenn nochmal jemand einen Blick auf meinen Code werfen könnte. Das Prinzip ist das selbe wie oben, Eingabe einer Zahl und eines Zeichens, die Ausgabe soll eine auf dem Kopf stehende Pyramide sein.

In etwa so:

Zahl: 6

Zeichen:*

******

-****

--**

Zahl: 7

Zeichen: *

*******

-*****

--***

---*

(' - ' = Leerzeichen)

Hier mein jetztiger Code:

int design3(int zahl, char zeic)

{

	for (int i=1;i<=zahl;i++)

	{

		for (int j=0;j<=i-2;j++)

		{

			cout << " ";

		}

		for (int k=1;k<=zahl;k++)

		{

			cout << zeic;

		}

		zahl-=2;

		cout << endl;

	}

	return 0;

}

Funktioniert gut außer dass er mir die letzte Zeile nicht ausgibt. Und ich seh vor lauter Code den Fehler net.. *need coffee*

Außerdem hab ich schon wieder zu viele Schleifen.. -_-

Muchas Gracias schonmal.. :)

so long

Geschrieben

Daß die Pyramide nicht bis zum Schluß gezeichnet wird, liegt daran, daß du zahl ja immer um 2 dekrementierst, in der äußersten Schleife aber auch i und zahl vergleichst. Wenn du zahl etwas größer wählst, siehst du, daß er noch mehr Ebenen ausläßt. i wird immer größer, aber zahl immer kleiner :)

Hier ein Code, der zumindest bei mir funktioniert hat:

void design4(int zahl, char zeic)

{

	for (int i=0; i < zahl; i++)

	{

		for (int j = 0; j < zahl - i; j++)

			if (j < i)

				cout << " ";

			else

				cout << zeic;


		cout << endl;

	}

}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...