c++ hausaufgabe problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • c++ hausaufgabe problem

    Hallo Leute,
    ich versuche mich nun schon seid stunden an meiner hausaufgabe und verzweifle langsam.

    Die Aufgabe lautet:
    "Im Jahr 1987 hatte Indien 700 Millionen Einwohner, China dagegen 990 Millionen. Die jährliche
    Wachstumsrate Indiens beträgt 2,1%, die Chinas nur 1,4%. Schreiben Sie ein Programm, das
    ermittelt, wann die Einwohnerzahl Indiens größer ist als die Chinas."

    Mein Lehrer hat gesagt, dass wir dafür die do-while schleife und if/else benötigen. Was anderes haben wir bis jetzt auch noch nicht gelernt.

    Mein Code sieht bis jetzt wie folgt aus:

    #include<conio.h>
    #include<iostream.h>


    void main() {
    double wachstumsrateIndien,wachstumsrateChina;
    double indien1987,china1987,indienPlus,chinaPlus,china,indien;

    wachstumsrateIndien = 0.021;
    wachstumsrateChina = 0.014;

    cout <<"Einwohnerzahl von Indien 1987: ";
    cin >> indien1987;

    cout <<"Einwohnerzahl von China 1987: ";
    cin >> china1987;

    do{
    indienPlus = indien1987 * wachstumsrateIndien;
    chinaPlus = china1987 * wachstumsrateChina;

    indien = indien1987 + indienPlus;
    china = china1987 + chinaPlus;

    }while (indien>china);

    if (indien>china) {
    cout << indien << endl;
    cout << china << endl;
    cout <<"Die Einwohnerzahl Indiens ist nun groeßer als die Chinas! ";
    }

    getch();
    }



    PS: Der Code funktioniert ja auch soweit, nur rechnet er zwischen do+while die ganze zeit nur die einwohnerzahl nach einem jahr aus. Dann ist es ja klar dass die einwohnerzahl von indien niemals größer wird als die von china.
    Deshalb meine Frage: Wie kriege ich das hin, dass er immer wieder auf das ergebnis 2,1% drauftut.
  • Dein Fehler liegt in der Schleife (suchen darfst du aber selbst)

    Tipp:
    lass dir in jedem Schleifendurchgang alle Werte mal ausgeben, dann findest du den Fehler sehr schnell

    z.B. so:

    Quellcode

    1. cout << "wert1: " << wert1 << endl;
    2. cout << "wert2: " << wert2 << endl;
    3. //...
    4. cout << "-------------------------" << endl << endl;



    Viel Erfolg

    [EDIT]

    und google mal danach was man mit
    +=
    -=
    *=
    /=
    %=


    so alles machen kann. Du wirst erfreut sein :D
  • Ist auch so. Sonst rechnet man VON dem Jeweiligem Kapital den Zinssatz aus. Allerdings will man gleich hinzu addieren. Also 100% + X,YZ%.
    Beispiel:

    100€*1,00% = 1€
    100€* 101% = 101€

    Ich weiß das, hab noch genug Mathematik in der Schule..... :D
    Allerdings wird hier nicht mit "Zinsvokabeln" gerechnet, mehr mit "Prozentvokabeln". Also:
    Kapital = Grundwert;
    Zinssatz = Prozentsatz;
    Zinswert = Prozentwert;
    Zeit = Zeit;

    Hab den Fehler jetzt auch gefunden. 8)
    Ahja, ich hasse diese besonders besondere Art von Fehlern. :thumbdown:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Checkmateing ()