Help
-
Hallo
ich hoffe ich bin hier richtig
ich als anfänger im programieren habe einen quellcode jedoch ist ein fehler drinnen den ich nicht verstehe bzw auch nach googeln nicht behoben bekomme:-(#include <stdio.h> #include <math.h> #include <conio.h> double annuitaet(double bw, double p, int zzr) { double hilf; hilf=pow((1+p),zzr); return bw*hilf*p/(hilf-1); } int main(void) { float anfangsschuld,zinssatz,restschuld; float zinsen,tilgung,gesamtzahlungen,monate; int zaehler,zeile=0; printf("\nKreditberechnung\n\n"); printf("Kredit (EUR) : "); scanf("%f",&anfangsschuld); printf("Zinssatz (%%) : "); scanf("%f",&zinssatz); zinssatz/=1200.0; printf("Zahlungszeitraum (Monate) : "); scanf("%f",&monate); printf("\nAnnuitaet : %10.2f\n\n", annuitaet(anfangsschuld,zinssatz,monate)); restschuld = anfangsschuld; printf("Zeit \t | Zinsen \t | tilgung\t | Schuldenstand\n"); for(zaehler=1;zaehler<=monate;zaehler++) { zinsen=restschuld * zinssatz; tilgung=annuitaet(anfangsschuld,zinssatz,monate) - zinsen; restschuld -= tilgung; if (zaehler==monate) restschuld=0.0; printf("%4i \t | %8.2f \t | %8.2f \t | %8.2f \n", zaehler,zinsen,tilgung,restschuld); zeile++; if (zeile==12) { zeile=0; printf ("weiter... \n"); getch(); } /* if */ } /* for */ gesamtzahlungen=monate*annuitaet(anfangsschuld,zinssatz,monate) ; printf("\nGesamtzahlungen = 8.3f EUR\n",gesamtzahlungrn); getch(); return 0; }
der Fehler liegt dann hier :
printf("\nAnnuitaet : %10.2f\n\n", annuitaet(anfangsschuld,zinssatz,monate));
wäre super wenn mir jemand sagen könnte wie ich dass mit den verschidenen formaten hinbekomme denn irgendwie convertiert es es hier um und dies wäre ein datenverlust der ja erstmal nicht schlimm wäre oder?
Also vielen dank schonmal für euer Hilfe
mfg
weigi
-
Falsches Forum, unbrauchbare Überschrift, unbrauchbare Fehlerbeschreibung
. Aber immerhin kompletter Quelltext mit Formatierungstags
, leider unlesbar eingerückt, compiliert nicht wegen Rechtschreibfehlern (hast du das etwa für das Forum abgetippt?)
.
Trotzdem hat natürlich niemand eine Ahnung, was du überhaupt wissen möchtest. Bitte lies dir mal durch:
http://www.c-plusplus.net/forum/200753
http://www.c-plusplus.net/forum/136013
http://www.tty1.net/smart-questions_de.html
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89 und C99) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Meinst du das Problem das zzr ein int ist und monate ein float?
Da hast du mehrere Möglichkeiten:
1. Definiere moante auch als int.
2. Definiere zzr als double oder float.
3. caste monate nach int (indem du (int) vor monate schreibst).
-
Sieht aus, als ob du das irgendwoher abgetippt hast und dann auch noch falsch, allein
printf("\nGesamtzahlungen = 8.3f EUR\n",gesamtzahlungrn);
beinhaltet 2 Fehler. Sowas mahnt dein Compiler an, und dessen Mahnungen sind für dich erstmal maßgebend, heißt natürlich nicht, dass ein Programm ohne Compilerhinweise/fehler funktioniert.
Um mit den printf+scanf Formatspezifizierern nicht durcheinanderzukommen, solltest du als Anfänger nur mit float (statt double oder long double) arbeiten, da ist "%f" jeweils richtig. Den nichtportablen conio-Müll habe ich mal entsorgt: