Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zeichenausgabe im Quadrat..

Empfohlene Antworten

Veröffentlicht

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..


#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ß

Ist alles absolut verständlich, danke schön. ^^

Ich sollte mir wohl mal ne Tasse Kaffee holen..

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

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

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;

	}

}

Dann sag ich vielmals danke, funktioniert alles und ich habs auch wunderbar verstanden. ^^

Selbst draufkommen ist immer nur so ne Sache bei mir.. -_-

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.