Ergebnis 1 bis 12 von 12
  1. #1
    Mitglied
    Registriert seit
    Jun 2011
    Beiträge
    20

    Standard 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?

  2. #2
    Mitglied Avatar von MadDog123456
    Registriert seit
    Aug 2007
    Ort
    42
    Beiträge
    1.893

    Standard Re: Hilfe beim Implementieren!

    PHP-Code:
    for(i=0;i<6;i++)
    {
    for (
    j=0;j<i;j++)
      {
        
    printf("*");
       }
    printf("\n");

    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.

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Jun 2011
    Beiträge
    20

    Standard 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?

  4. #4
    Mitglied Avatar von lupo1977
    Registriert seit
    Feb 2006
    Ort
    Hier & Jetzt
    Beiträge
    1.151

    Standard Re: Hilfe beim Implementieren!

    Kannst du mir erklären warum die eine "for"-Schleife in die Andere muss?
    Weil es das Problem löst?
    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.

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

  5. #5
    Mitglied

    (Threadstarter)


    Registriert seit
    Jun 2011
    Beiträge
    20

    Standard Re: Hilfe beim Implementieren!

    Leider funktioniert das Programm nicht!

    PHP-Code:
    gcc -Wall -pedantic -o stars2.exe stars2.c
    stars2
    .cIn Funktion »main«:
    stars2.c:4:6Fehler»i« undeclared (first use in this function)
    stars2.c:4:6Anmerkungeach undeclared identifier is reported only once for each function it appears in
    stars2
    .c:5:8Fehler»j« undeclared (first use in this function)
    stars2.c:10:1Warnungcontrol reaches end of non-void function 

  6. #6
    Mitglied Avatar von ronnie_10
    Registriert seit
    Dec 2007
    Beiträge
    315

    Standard Re: Hilfe beim Implementieren!

    Du musst i und j noch definieren.
    Also

    Code:
    int i, j;

  7. #7
    Mitglied Avatar von lupo1977
    Registriert seit
    Feb 2006
    Ort
    Hier & Jetzt
    Beiträge
    1.151

    Standard Re: Hilfe beim Implementieren!

    Fehler: »i« undeclared (first use in this function)
    Was glaubst Du will der Compiler Dir damit sagen?

    Probier mal so.

    PHP-Code:
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        
    int ij;

        for(
    1<= 6i++)
        {
            for (
    0ij++) printf("*");
            
    printf("\n");
        }
        return 
    0;

    Bitte Frag Dich selber wo der Unterschied ist.

  8. #8
    Mitglied

    (Threadstarter)


    Registriert seit
    Jun 2011
    Beiträge
    20

    Standard 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:

    int main () {
    int i, j;
    for(i=0;i<=6;i++){
    for (j=0;j<i;j++){
    printf("*");
    }
    printf("\n");
    }
    return 0;
    }
    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.

    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?

  9. #9
    Brain-Progger Avatar von Yoshi Party
    Registriert seit
    Apr 2006
    Beiträge
    3.493

    Standard Re: Hilfe beim Implementieren!

    lupo hat dir den code doch schon gepostet

  10. #10
    Mitglied Avatar von MadDog123456
    Registriert seit
    Aug 2007
    Ort
    42
    Beiträge
    1.893

    Standard Re: Hilfe beim Implementieren!

    Zitat Zitat von lupo1977 Beitrag anzeigen
    Es ist nicht sinnvoll einfach die Lösung (nichts für ungut MadDog123456) zu posten. Dein Nachfragen zeigt das ja eindrucksvoll.
    Das habe ich gerade auch bemerkt. Ich dachte nur, dass bei so einem beispiel ein codeschnipsel die beste wahl wäre.

    Es werden zu jedem j ein * ausgegeben. danach kommt ein \n (new line). d.h. bei jedem durchlauf kommt ein * dazu.

  11. #11
    Mitglied Avatar von usagichan
    Registriert seit
    Nov 2008
    Ort
    Mondpalast
    Beiträge
    2.406

    Standard Re: Hilfe beim Implementieren!

    Zitat Zitat von MegaGoldfisch Beitrag anzeigen
    So haben wir jetzt i=2 und j=1! Ausgegeben wird jetzt aber wieder nur "*\n"... und so weiter...
    j beginnt jedesmal bei 0.

    Code:
    for (j=0;j<i;j++){

  12. #12
    Virtual Áigái

    ex-Moderator

    Avatar von TheSplit
    Registriert seit
    Apr 2001
    Beiträge
    2.567

    Standard 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 )

  13.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •