Verständnisfrage
-
Hallo ich bin noch neu im Erlenen der C Sprache und habe eine Verstädnisfrage zum folgenden Code, der funktioniert einwandfrei, aber habe dazu eine Frage. Ich bedanke mich schon mal im Voraus. ( Frage unterm Code)
int main()
{
float kapital;
float jahre;
float zinssatz;
float jahr;printf("Bitte geben Sie ihr Startkapital an");
scanf("%f", &kapital);printf("Bitte geben Sie den Zinssatz an");
scanf("%f", &zinssatz);printf("Bitte geben Sie die Laufzeit der Jahre an\n");
scanf("%f", &jahre);for (jahr = 1; jahr <= jahre; jahr= jahr +1)
{
kapital = (1 + zinssatz / 100) * kapital;
}printf ("das abschliessende kapital: %.2f\n", kapital);
return 0;
}Der folgende Code berrechnet mein eingegebenes Kapital z.B 5000 mit dem eingegebenen Zinssatz z.B. 3.80 mit den eingegebenen Jahren z.B. 2 . Daraus kommt dann 5387,22.
Meine Frage wieso nimmt das Programm die (1+ 3,80/100) hoch zwei und nicht das Kapital hoch zwei ? Ich kann am Programm die Verbindung zwischen Jahre und (1 + 3,80/100 nicht erkennen.
-
Mit der Zeile
kapital = (1 + zinssatz / 100) * kapital;
weist du kapital einen neuen Wert zu.
Damit (mit dem neuen Wert) wird dann im nächsten Schleifendurchlauf weiter gerechnet.Hoch Zwei hast du auch nicht. Das sind kapital1,038
-
Wieso sollte er das Kapital potenzieren?
Ich denke du gehst von der "normalen" Zineszinsformel aus:Dann stimmt doch alles?
-
marvan556 schrieb:
for(jahr = 1; jahr <= jahre; jahr = jahr +1) { kapital = (1 + zinssatz / 100) * kapital; }
Ich kann am Programm die Verbindung zwischen Jahre und (1 + 3,80/100 nicht erkennen.
Die Verbindung ist die for - Schleife. Die Anweisung
kapital = (1 + zinssatz / 100) * kapital;
wird mehrmals hintereinander ausgeführt, und zwar abhängig von der Anzahl der eingegebenen Jahre.