Problem beim Initialisieren der for schleife



  • Das Problem mit dem Initialisieren hat schon mal geklappt 🙂 Danke DirkB 🙂

    for( ; anfang < ende; anfang = anfang * 1.1)
    

    (und ich glaube auch zu verstehn wieso 🙂 )

    Aber was ich noch nicht ganz verstehe ist das Problem %.2lf Wenn ich den original Code aus dem Buch ausführe geht das aber bei mir nicht

    int main(void) {
       double zs;
       for(zs = 100.0; zs < 150.0; zs = zs * 1.1)
          printf("%.2f\n", zs);
       system("PAUSE");
       return 0;
    }
    


  • Was beteutet das?

    DirkB schrieb:

    Das Verhalten von fflush auf stdin ist nicht definiert.

    ich hab mal gelesen das man das nach jeder scanf() Eingabe machen sollte zum entleeren des Tastaturpuffers. Ist dem nicht so?



  • Tu dir einen gefallen, und such dir eine andere Lektüre, hier im Forum sind einige aufgelistet, zum lernen von C. Mit diesem Online-Tutorial habe ich auch angefangen C zu lernen, auf Grund dieses Forums bin ich dann sehr schnell auf eine Lektüre gewechselt, da ich im weiteren Verlauf dieses "Tutorials" nur noch Probleme hatte.
    Vieles was C angeht wird dort nur halb bis garnicht über falsch erklärt und der Stil von Herrn Wolf ist verwirrend, unverständlich, kurz gesagt: schlecht.

    Gerade wenn man keine Erfahrungen in der Programmierung hat und noch keine Efahrung in C, macht man damit mehr kaputt. Ich selbst habe 2 Monate gebraucht um mir den Schwachsinn daraus wieder abzugewöhnen.



  • Captain_Morgan schrieb:

    Aber was ich noch nicht ganz verstehe ist das Problem %.2lf Wenn ich den original Code aus dem Buch ausführe geht das aber bei mir nicht

    int main(void) {
       double zs;
       for(zs = 100.0; zs < 150.0; zs = zs * 1.1)
          printf("%.2f\n", zs);
       system("PAUSE");
       return 0;
    }
    

    printf() benutzt %f fuer double
    scanf() benutzt %lf fuer double



  • Captain_Morgan schrieb:

    Was beteutet das?

    DirkB schrieb:

    Das Verhalten von fflush auf stdin ist nicht definiert.

    ich hab mal gelesen das man das nach jeder scanf() Eingabe machen sollte zum entleeren des Tastaturpuffers. Ist dem nicht so?

    aus den FAQ:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39349



  • Nirvash schrieb:

    Tu dir einen gefallen, und such dir eine andere Lektüre, hier im Forum sind einige aufgelistet, zum lernen von C. Mit diesem Online-Tutorial habe ich auch angefangen C zu lernen, auf Grund dieses Forums bin ich dann sehr schnell auf eine Lektüre gewechselt, da ich im weiteren Verlauf dieses "Tutorials" nur noch Probleme hatte.
    Vieles was C angeht wird dort nur halb bis garnicht über falsch erklärt und der Stil von Herrn Wolf ist verwirrend, unverständlich, kurz gesagt: schlecht.

    Gerade wenn man keine Erfahrungen in der Programmierung hat und noch keine Efahrung in C, macht man damit mehr kaputt. Ich selbst habe 2 Monate gebraucht um mir den Schwachsinn daraus wieder abzugewöhnen.

    Danke für deinen Rat ich werde mich mal umschauen für eine neue Lektüre. Kannst du gerade was empfehlen? Es ist nur schade dass das unser Schulbuch ist und ich nicht darum komme es zu benützen 😞



  • @ gigg
    Wenn ich aber di fflush (stdin) raus nehme leuft das programm nicht mehr. es kommt nicht mehr in die <<for>> schleife und spring direkt zum ende.

    Ein schuhl freund hat mir gerade geschriben das er fflush(stdout) verwendet vor dem scanf() was ist da genau der unterschiet zu fflusch(stdin)?



  • Eine alternative Moeglichkeit steht in den FAQ. Es ist der 2. Kommentar in dem Link, den ich geschickt habe.



  • Captain_Morgan schrieb:

    Wenn ich aber di fflush (stdin) raus nehme leuft das programm nicht mehr. es kommt nicht mehr in die <<for>> schleife und spring direkt zum ende.

    Sicher?
    Oder schließt sich nur ganz schnell das Ausgabefenster?

    Wenn du das fflush(stdin) wegläßt, bleibt noch das Zeichen von der Enter-Taste im Eingabestrom stehen. Dies wird dann gleich vom system("PAUSE"); eingelesen und das Programm beendet.

    Wenn man weiß, wie scanf funktioniert (bei welchen Zeichen im Formatstring was passiert) gibt es da eigentlich keine Probleme.
    Ein großes Problem bleiben aber Fehleingaben vom Benutzer.

    printf und scanf sind zwei unterschiedlich Funktionen, deren Formatspecifier teilweise die gleiche Bedeutung haben.
    Du kannst also nicht von der einen Funktion auf die andere schließen.



  • Danke für eure Hilfe 🙂 hab das Programm zwar den Bach abgelassen aber trotz dem viel gelernt dabei. ich bin das ganze Projekt viel zu kompliziert angegangen...

    lg


Anmelden zum Antworten