Problem mit Zinsberechnung & der Tabelle dazu
-
Hallo,
ich bin nicht gerade geübt in C,
und habe folgendes Problem, in diesem Bsp soll eine Tabelle aufgezeigt werden die Mir die Jahre den Habenzins und das Gesammtkapital nach dem n Jahr ausgibt.
leider gibt er mir nur Jahr 1 aus (und produziert eine Endlosschleife wenn ich auf (ich glaub die Taste nennt sich Enter) drück./* f = Anfangskapital,bspweise 500 a = Zinssatz,bsp 5 y = Laufzeit bsp 10*/ double b; for (n = 1; n <= y; n++) { b = f*(1+(a/100)); //immer den selben Wert, den falsch beim bsp immer 5 y=b; /*hier gibt er immer nur den selben Wert an auch wenn er im ersten Jahr richtig ist ist er in allen andern falsch bsp immer 525*/ printf("%8lf %21lf %29lf \n", n, a, y); getchar();
Bitte helft mir, ich habe schon viel rumprobiert "Formel versucht zu ändern"
Hoffe das das alles nicht der total falsche Ansatz ist!
Das mit n hat mal funktioniert, grinsjetzt aber nichtmehr!
Danke
-
double b; for (n = 1; [b][u]n <= y[/u][/b]; n++) { b = f*(1+(a/100)); [b][u]y=b;[/u][/b] printf("%8lf %21lf %29lf \n", n, a, y); getchar(); }
-
Klar, daß Du immer nur den Wert nach dem 1 Jahr herausbekommst: das Startkapital steht in "f" und Du weist das Ergebnis "b" zu. Im nächsten Schleifendurchlauf rechnet er wieder mit "f"...
Wenn Du folgendes machst, dann klappts mit dem Hochrechnen:
double b = f;
Dann in der Schleife...
b = b + (1+(a/100));
...damit er den Zineszins richtig rechnen kann.
Wie c.rackwitz schon "gesagt" hat, ist y=b natürlich übel und scheint eine Endlosschleife zu produzieren....
-
AndreasD schrieb:
Endlosschleife
eher bis f*(1+(a/100)), was, bei f = 1.000.000 taler schon mal den bildschirm flutet.
-
Ist jetzt keine Endlosschleife mehr und gibt die richtigen Werte an!
Dank an alle!
Auch wenn ich den ersten Wink mit dem Zaunpfahl nicht verstanden habe!double b = f; /* damit b nicht immer mit f1 läuft */ double c = f; for (n = 1; n <= y; ++n) { b = b * (1+(a/100)); c = c*(1+(a/100)); printf("%8f %21lf %29lf \n", n, c-f, b); getchar();
-
b und c nehmen immer gleiche werte an; sie sind redundant. c kannst du entfernen.