Wiederholungs abfrage mit "char"



  • Moin moin

    ich möchte über eine j/n abfrage ein programm wiederholen lassen.

    Mein problem nach der j/n abfrage kann ich die eingaben wiederholen aber er ignoriert die ausgaben und fragt sofort wieder nach, ob ich wiederholen möchte.

    sven

    ps danke im voraus



  • Das ist ja doof.

    Wenn Sie eine detaillierte Antwort haben möchten, werfen Sie noch etwas Quelltext ein.



  • #include <QtCore/QCoreApplication>
    #include <iostream>
    #include <cmath>
    #include <iomanip>
    #include <stdlib.h>
    using namespace std;

    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);

    int G;
    float JP, ZS, J, Z;
    char ch;

    do
    {
    do
    {
    cout<<"Jahrespraemie (JP): ";
    cin>>JP;
    }
    while (JP<100);
    do
    {
    cout<<"Zinssatz (ZS): ";
    cin>>ZS;
    }
    while (ZS<3 || ZS>5);
    while (J<18)
    {
    cout<<J<<" "<<Z<<" "<<G<<endl;
    Z=G/100*ZS;
    G=G+JP+Z;
    J=J+1;
    }
    cout<<"Nochmal?"<<ch;
    cin>>ch;
    system("cls");
    }
    while (tolower(ch)=='j');
    return 0;

    return a.exec();
    }



  • So kann man es erst einmal besser lesen:

    #include <QtCore/QCoreApplication>
    #include <iostream>
    #include <cmath>
    #include <iomanip>
    #include <stdlib.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        int G;
        float JP, ZS, J, Z;
        char ch;
    
        do
        {
            do
            {
            cout<<"Jahrespraemie (JP): ";
            cin>>JP;
            }
            while (JP<100);
            do
            {
            cout<<"Zinssatz (ZS): ";
            cin>>ZS;
            }
            while (ZS<3 || ZS>5);
            while (J<18)
            {
            cout<<J<<"  "<<Z<<"  "<<G<<endl;
            Z=G/100*ZS;
            G=G+JP+Z;
            J=J+1;
            }
            cout<<"Nochmal?"<<ch;
            cin>>ch;
            system("cls");
        }
        while (tolower(ch)=='j');
        return 0;
    
        return a.exec();
    }
    


  • Kann mir da echt keiner bei meinem Problem helfen?



  • Vielleicht liegt es an J? Die erste Abfrage erfolgt mit einem nicht einmal inizialisieretem J in der while-Schleife. Und von da an ist die Bedingung (while (J < 18)) immer false, da J >= 18 ist und auch immer bleibt. Setzt es ja nie wieder auf irgend einen Wert.



  • yup muste nur sagen "J=0" und läuft ohne probleme.

    Danke

    sven


Anmelden zum Antworten