PROBLEM mit FOR-Schleife

hakkejimmy25

Grünschnabel
Hallo alles zusammen,schreibe zur Zeit ein kleines Programmm und bin jetzt an folgender Stelle angekommen wo es happert....
Möhcte eine Ausgabe mit For-Schleifen erschaffen die so in etwas aussieht....

+-----------------------------+
| |
| | [ die zweiten Striche sollen am zweiten Plus zeichen nach unten gehen
| | [ der will das hier nicht so richtig darstellen ]
| |
| |
| |
+-----------------------------+

Folgenden Quelltext habe ich schon geschrieben....jedoch happert ers irgendwie bei der zweiten FOR-Schleife.....

int i;
int j;

for (i=0;i<20;i++)


if (i==0 || i==19 )
printf("+");
else
printf("-");


printf("\n\n");

for(j=2;j<30;j++);
{
if(j==0)
printf("**");
else
printf("-");
}
 
Du solltest nach der ersten for (..) deinen Block in geschweifte Klammern einbinden.
Den Rest des Codes verstehe ich ob deines Bildes nicht so genau...
j wird niemals ß wenn du mit j=2 beginnst und auch sonst ist mir nicht ganz klar was du brauchst :)
Gruß
 
meinst du das evtl. so?

Code:
int i;
int j;

for (i=0;i<20;i++) {
    if (i==0 || i==19 )
        printf("+");
    else
        printf("-");

    printf("\n\n");

    for(j=2;j<30;j++) {
        if(j==0) 
            printf("**");
        else
            printf("-");
    }
}
 
Er meinte nur, dass du die erste IF-Anweisung klammern sollst, da er sonst den nächsten Befehl 20x ausführt.

Was dein Problem angeht:
Wenn du eine derartige Konsolenausgabe machen möchtest, ist es wahrscheinlich mit normalen cout-Befehlen / printf-Befehlen einfacher, als wie das über Schleifen zu lösen, da das wahrscheinlich etwas zu kompliziert wird.

Auf anhieb, um eine derartige Ausgabe zu erstellen würde ich es so probieren, wenn ich das Problem jetzt nun richtig erfasst habe und es unbedingt in Schleifen gemacht werden muss:

Code:
	for(int i = 0; i < 20; i++)
	{
		if(i == 0 ||i == 19)
			printf("+");
		else
			printf("-");
	}

	for(int i = 0; i < 6; i++)
	{
		printf("\n");
		for(int j = 0; j < 19; j++)
		{
			if(j == 0 || j == 18)
				printf("|");

			printf(" ");
		}
	}

	printf("\n");
	for(int i = 0; i < 20; i++)
	{
		if(i == 0 ||i == 19)
			printf("+");
		else
			printf("-");
	}

Die andere Sache ist deine zweite Schleife.
Wie oben schon gesagt wurde, prüfst du auf j == 0 was schon nicht funktioniert, weil die Startbedingung j = 2 ist.
Was heißt, dass j den Wert 2 bekommt und somit nie den Wert 0 erreicht durch deine Postfixnotation.

Grüße.
 
Zurück