Thema: Hilfe beim Implementieren!
-
01. 10. 2011, 11:38 #1Mitglied
- Registriert seit
- Jun 2011
- Beiträge
- 20
Hilfe beim Implementieren!
Hallo liebe Community,
schon seit mehreren Stunden versuche ich ( , ein blutiger Anfänger, ) einen Code in C zu implementieren welcher folgendes ausgibt:
*
**
***
****
*****
******
Ich habe Ansätze wie das funktionieren soll, scheitere allerdings bei der Bedingung in der ersten while-Schleife. Könnt ihr mir ein Tipp geben?
-
01. 10. 2011, 12:13 #2
Re: Hilfe beim Implementieren!
habs jetzt nicht getestet, sollte aber so in der art funktionieren. ne While wäre auch möglich, aber da man Zähler braucht sind for-schleifen die bessere wahl.PHP-Code:for(i=0;i<6;i++)
{
for (j=0;j<i;j++)
{
printf("*");
}
printf("\n");
}
-
01. 10. 2011, 12:44 #3Mitglied
(Threadstarter)
- Registriert seit
- Jun 2011
- Beiträge
- 20
Re: Hilfe beim Implementieren!
Vielen Dank für deine Antwort!
Kannst du mir erklären warum die eine "for"-Schleife in die Andere muss? Oder: Was würde passieren wenn die beiden nicht ineinander wären?
-
01. 10. 2011, 13:06 #4
Re: Hilfe beim Implementieren!
Weil es das Problem löst?Kannst du mir erklären warum die eine "for"-Schleife in die Andere muss?
Geh doch einfach das Programm mit einem Debugger oder in Gedanken Schritt für Schritt durch. Beim Verstehen kannst nur Du Dir helfen, das kann Dir keiner abnehmen.
Beim nächsten Mal wäre es schön Du könntest die Ansätze darlegen. Es ist nicht sinnvoll einfach die Lösung (nichts für ungut MadDog123456) zu posten. Dein Nachfragen zeigt das ja eindrucksvoll.Ich habe Ansätze wie das funktionieren soll, scheitere allerdings bei der Bedingung in der ersten while-Schleife. Könnt ihr mir ein Tipp geben?
-
01. 10. 2011, 15:08 #5Mitglied
(Threadstarter)
- Registriert seit
- Jun 2011
- Beiträge
- 20
Re: Hilfe beim Implementieren!
Leider funktioniert das Programm nicht!
PHP-Code:$ gcc -Wall -pedantic -o stars2.exe stars2.c
stars2.c: In Funktion »main«:
stars2.c:4:6: Fehler: »i« undeclared (first use in this function)
stars2.c:4:6: Anmerkung: each undeclared identifier is reported only once for each function it appears in
stars2.c:5:8: Fehler: »j« undeclared (first use in this function)
stars2.c:10:1: Warnung: control reaches end of non-void function
-
01. 10. 2011, 15:16 #6
Re: Hilfe beim Implementieren!
Du musst i und j noch definieren.
Also
Code:int i, j;
-
01. 10. 2011, 15:20 #7
Re: Hilfe beim Implementieren!
Was glaubst Du will der Compiler Dir damit sagen?Fehler: »i« undeclared (first use in this function)
Probier mal so.
Bitte Frag Dich selber wo der Unterschied ist.PHP-Code:#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j;
for(i = 1; i <= 6; i++)
{
for (j = 0; j < i; j++) printf("*");
printf("\n");
}
return 0;
}
-
01. 10. 2011, 16:57 #8Mitglied
(Threadstarter)
- Registriert seit
- Jun 2011
- Beiträge
- 20
Re: Hilfe beim Implementieren!
Also ich hab jetzt alles verstanden und habe auch meine Fehler eingesehen! Jetzt wollte ich den Code mal durchgehen damit ich auch den Prozess verstehe. Leider kommt bei mir was anderes im Kopf raus. Ich versuche meinen Gedankengang mal zu skizzieren:
Am Anfang sind die Variablen i und j noch nicht initialisiert. In der ersten for-Schleife wird i zu 0 initialisiert. Die Bedingung, dass i kleiner oder gleich 6 ist, ist somit erfüllt. Dann folgt der Befehl. Im Befehl befindet sich eine zweite for-Schleife. Die Variable j wird auf 0 initialisiert und solange j kleiner ist als i soll die Konsole '*' ausgeben! Am Anfang ist j jedoch nicht kleiner sondern gleich i und somit wird dieser Schritt übersprungen. Es folgt die Ausgabe "\n" welche ein Zeilenumbruch ist.int main () {
int i, j;
for(i=0;i<=6;i++){
for (j=0;j<i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
Zurück zur ersten for-Schleife:
Die Befehle wurden ausgegeben und i wird somit auf 1 gesetzt. 1 ist kleiner als 6. In der zweiten for-Schleife erfüllt sich nun die Bedingung, da 0 kleiner 1 ist. Es wird ein "*" ausgegeben und danach ein "\n". Da beide for-Schleifen die Bedingung erfüllt haben, werden die Variablen um 1 addiert. So haben wir jetzt i=2 und j=1! Ausgegeben wird jetzt aber wieder nur "*\n"... und so weiter...
Wo ist der Fehler in meinem Gedankengang?
-
01. 10. 2011, 18:28 #9
Re: Hilfe beim Implementieren!
lupo hat dir den code doch schon gepostet

-
01. 10. 2011, 23:58 #10
-
02. 10. 2011, 16:54 #11
-
11. 10. 2011, 00:01 #12
Re: Hilfe beim Implementieren!
Es tut mir leid, aber ich kann es mir nicht verkneifen:
Das Beispiel ist aus "Programmieren lernen mit C" wenn ich mich nicht irre? Falls nicht sei es drum, das Buch ist gut wenn auch alt. (fast wie ich
) 
@lupo1977
Kleine Frage, warum hast du "stdlib.h" eingebunden? Stdio.h für das Printf reicht doch aus, irre ich? (war der Beitrag also doch nicht umsonst
)
-


Zitieren

mehr lesen...







Mechwarrior Online: Closed Beta...
Heute, 12:36 in gulli:news