For Schleife wird nicht durchlaufen

  • #include <stdio.h>
    #include <iostream>
    #include <fstream>
    #include <math.h>

    using namespace std;

    main()
    {
    int intJahr, i;
    float fltKredit, fltProzent, fltRate, fltTilgung, fltZinsen, fltRest;

    intJahr = 0;
    fltZinsen = 0;

    cout<<"Bitte geben Sie den Kreditbetrag in Euro ein:"<<endl;
    cin>>fltKredit;

    cout<<"Bitte geben Sie den Zinssatz in Prozent ein:"<<endl;
    cin>>fltProzent;

    cout<<"Bitte geben Sie die Rate in Euro ein:"<<endl;
    cin>>fltRate;

    i=0;

    for (i = 0;i <=20;i++)
    {
    intJahr = i + 1;

    fltZinsen = fltRest * fltProzent / 100;

    fltTilgung = fltRate - fltZinsen;

    fltRest = fltRest - fltTilgung;

    cout<<i, fltRest, fltZinsen, fltTilgung, fltRate;

    }

    }

    Vielleicht könnt ihr mir helfen. Die For schleife wird gar nicht durchlaufen
    Wo ist der fehler

    lg anki

  • Also ich bin dafür, dass hier eine Prügelstrafe eingeführt wird für Leute, welche die Code-Tags nicht nutzen! Solche Code-Schnippsel kann doch keiner lesen...

    Zu deinem Problem, bzw. erstmal ein paar Tipps:

    1. die main Funktion sollte so aussehen:

    Code
    int main()
    // oder
    int main(int argc, char* argv[])
    
    
    // aber nicht
    void main() // falsch! das ist kein C++ standard!

    2. direkt vor der for-Schleife steht bei dir ein "i = 0;" -> das kannst du dir sparen, da du im for-Schleifenkopf i auf 0 setzt. Desweiteren würde ich i auch erst dort anlegen, dass hilft der Übersicht und du brauchst i nirgends anders:

    Code
    for(int i=0; i<=20; ++i)
    {
       // do something
    }

    3. dein Programm geht sicher in die for-Schleife, aber dort wird es abstürzen (bzw. undefiniertes Verhalten)! Denn du nutzt "fltRest" ohne es initialisiert zu haben. Das knallt gewaltig.

    4. du nutzt cout völlig falsch, ich denke du willst folgendes erreichen:

    Code
    cout << i << " " << fltRest << " " << fltZinsen << " " << fltTilgung << " " << fltRate << endl;

    5. falls du C++ lernst: bitte verwende anstatt <math.h> die <cmath> Header. Diese <XXX.h> Header sind "veraltet" und sollten nur in reinem C verwendet werden.

  • danke aber irgendwie läuft es trotzdem nicht

  • Ich misch mich hier mal ein ...

    1. Der Quelltext sieht grauenvoll aus.

    2. Bei mir läuft das ganze durch, auch wenn es evtl. nicht das macht, was es soll.

    [Blockierte Grafik: http://i61.photobucket.com/albums/h64/DarkSyranus/forum-hilfe/fh_kredit_01.png]

  • Welchen Compiler benutzt du?
    Unter Windows nutze ich Dev C++.
    Ist zwar nicht der modernste, aber er läuft bei mir einwandfrei.
    Probier sonst mal einen anderen Compiler.

    Btw. die include Datei fstream ist meiner Meinung nach für Dateioperation zuständig, willst du später die Ergebnisse in Datein schreiben?
    Wenn ja, würde ich auch die Header-Datei erst später includieren (also sobald du mit Datein arbeitest), das hat den Vorteil, dass man nur den Code wirklich einbindet, den man braucht und somit die Performance des Programms evtl. steigert.

  • Zitat von anki

    Bei mir schließt das fenster sofort nach der eingabe

    Ach das ist dein Problem, jetzt versteh ich es. Schau doch mal den Code von DarkSyranus an, er hat am Ende ein cin.get() -> das sollte das Schließen des Fensters verhindern.

    Desweiteren würde ich mir die Tipps von ihm auch zu Herzen nehmen, du solltest den Code wirklich einrücken um die Lesbarkeit zu erhöhen.

  • das cin.get habe ich auch schon drin

    danke für eure hilfe ich möchte die ergebnisse nicht in eine datei schreiben ich möchte sie einfach nur ausgeben

    als compiler nutze ich dev c++