C :: Aufgabe #190 :: Lösung #1
1 Lösung
#190
Die beste Darlehensart berechnen
Anfänger - C
von Gelöschte Person
- 04.06.2018 um 17:06 Uhr
Schreibe ein Programm welches folgende Parameter übergeben bekommt:
- Nominalzins p.a.
- Laufzeit (Jahre)
- Darlehen (€)
Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist:
- Fälligkeitsdarlehen
- Ratendarlehen
- Annuitätendarlehen
... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;)
- Nominalzins p.a.
- Laufzeit (Jahre)
- Darlehen (€)
Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist:
- Fälligkeitsdarlehen
- Ratendarlehen
- Annuitätendarlehen
... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;)
#1
von kathleenw (3600 Punkte)
- 17.07.2020 um 09:47 Uhr
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
float nominalzins, darlehen, q, minimum;
int jahre, i, stelle_minimum;
float restschuld[100], zinsen[100], tilgung[100], rate[100],gesamtkosten[3];
printf("Welcher Nominalzins? ");
if (scanf("%f", &nominalzins)!=1) {
printf("Bitte geben sie eine Zahl ein.");
return EXIT_FAILURE;
}
printf("Welches Darlehen möchten sie? ");
if (scanf("%f", &darlehen)!=1) {
printf("Bitte geben sie eine Zahl ein.");
return EXIT_FAILURE;
}
printf("Wieviel Jahre wollen sie es abbezahlen?");
if (scanf("%d", &jahre)!=1) {
printf("Bitte geben sie eine Zahl ein.");
return EXIT_FAILURE;
}
//Tilgungsdarlehen
for (i=0;i<jahre;i++) {
tilgung[i] = darlehen / jahre;
}
restschuld[0] = darlehen;
zinsen[0] = restschuld[0] * (nominalzins/100);
rate[0] = zinsen[0] + tilgung[0];
gesamtkosten[0] = rate[0];
for (i=1;i<jahre;i++) {
restschuld[i] = restschuld[i-1] - tilgung[i-1];
zinsen[i] = restschuld[i] * (nominalzins/100);
rate[i] = tilgung[i] + zinsen [i];
gesamtkosten[0] = gesamtkosten[0] + rate[i];
}
printf("\n***Tilgungsdarlehen***\n\n");
for (i=0;i<jahre;i++) {
printf("%3d %12.2f %12.2f %12.2f %12.2f \n", i+1, restschuld[i], zinsen[i], tilgung[i], rate[i]);
}
printf("\nDie Gesamtschuld beträgt %.2f Euro.\n\n", gesamtkosten[0]);
//Annuitätendarlehen
q=1+(nominalzins/100);
for (i=0;i<jahre;i++) {
rate[i] = darlehen * ((pow(q,jahre) * (nominalzins/100))/(pow(q,jahre)-1));
}
restschuld[0] = darlehen;
zinsen[0] = restschuld[0] * (nominalzins/100);
tilgung[0] = rate[0] - zinsen[0];
gesamtkosten[1] = rate[0];
for (i=1;i<jahre;i++) {
restschuld[i] = restschuld[i-1] - tilgung[i-1];
zinsen[i] = restschuld[i] * (nominalzins/100);
tilgung[i] = rate[i] - zinsen[i];
gesamtkosten[1] = gesamtkosten[1] + rate[i];
}
printf("\n***Annuitätendarlehen***\n\n");
for (i=0;i<jahre;i++) {
printf("%3d %12.2f %12.2f %12.2f %12.2f \n", i+1, restschuld[i], zinsen[i], tilgung[i], rate[i]);
}
printf("\nDie Gesamtschuld beträgt %.2f Euro.\n\n", gesamtkosten[1]);
//Fälligkeitsdarlehen
tilgung[jahre-1] = darlehen;
rate[jahre - 1] = darlehen + darlehen * (nominalzins/100);
gesamtkosten[2] = 0;
for (i=0;i<jahre;i++) {
restschuld[i] = darlehen;
zinsen[i] = darlehen * (nominalzins/100);
if (i!=(jahre-1)) {
tilgung[i] = 0;
rate[i] = tilgung[i] + zinsen[i];
}
gesamtkosten[2] = gesamtkosten[2] + rate[i];
}
printf("\n***Fälligkeitsdarlehen***\n\n");
for (i=0;i<jahre;i++) {
printf("%3d %12.2f %12.2f %12.2f %12.2f \n", i+1, restschuld[i], zinsen[i], tilgung[i], rate[i]);
}
printf("\nDie Gesamtschuld beträgt %.2f Euro.\n\n\n", gesamtkosten[2]);
//Auswertung
minimum = gesamtkosten[0];
stelle_minimum = 0;
for (i=1;i<3;i++){
if (minimum > gesamtkosten[i]){
minimum = gesamtkosten[i];
stelle_minimum = i;
}
}
switch(stelle_minimum)
{
case 0:printf("Das Tilgungsdarlehen wäre für sie das Beste. Die Gesamtschuld beträgt hier %.2f Euro.\n",minimum);break;
case 1:printf("Das Annuitätendarlehen wäre für sie das Beste. Die Gesamtschuld beträgt hier %.2f Euro.\n",minimum);break;
case 2:printf("Das Fälligkeitsdarlehen wäre für sie das Beste. Die Gesamtschuld beträgt hier %.2f Euro.\n",minimum);break;
default: printf("Es ist ein Fehler aufgetreten.\n");
}
return EXIT_SUCCESS;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
