Hallo
Also wenn man deinen Quellcode so durchließt, hat man fast den Eindruck, dass du kaum bis gar keine Erfahrung mit C hast.
int m, versicherungsrate, versicherungsjahr, versicherungsbeitrag, j;
versicherungsrate=0.8;
Du kannst der Variable versicherungsrate nicht 0.8 zuweisen, weil du sie als integer (int) deklariert hast und ein int keine Kommazahlen speichern kann. Da musst du dann float oder double nehmen.
while(versicherungsjahr=j)
Dir muss klar sein, dass = der Zuweisungsoperator ist. Er weist der Variable versicherungsjahr den Wert der Variable j zu. Anschließend wird eine Wahrheitsprüfung durchgeführt, die dann bei einem j gleich 0 als false und bei einem j ungleich 0 als true ausfällt. Ich glaube, dass du in deinem fall eher den Vergleichsoperator == benötigst. Dierser vergleicht die Werte beider Variablen und gibt bei Gleichheit true sonst false zurück.
versicherungsrate*m*20/100==versicherungsbeitrag;
Dieser Ausdruck ist auch unsinnig. Ich vermute, dass du eher das gemeint hast:
versicherungsbeitrag = versicherungsrate \* m \* 20 / 100;
Ebenso dieser:
versicherungsbeitrag==versicherungsrate*m*10/100;
Besser:
versicherungsbeitrag = versicherungsrate \* m \* 10 / 100;
Und dieser:
versicherungsbeitrag==versicherungsrate*m;
Besser:
versicherungsbeitrag = versicherungsrate \* m;
Weiters solltest du dir die genaue Beschreibung der Funktion printf ansehen. http://www.cplusplus.com/reference/clibrary/cstdio/p…
Einen int gibt man so aus:
printf("%d", aninteger);
Die vielen printf könntest du dann auch in ein printf zusammenfassen:
printf("Jahr %d: %d €\n", versicherungsjahr, versicherungsbeitrag);
Ich weiß zwar nicht genau, wie deine Berechnung aussehen sollte, aber ich glaube du willst, dass die Schleife für jedes Jahr einmal durchläuft. Wenn du eine Schleife brauchst, bei der du zur Laufzeit weißt, wie lange sie laufen soll, dann benutze besser eine for Schleife:
for(int versicherungsjahr=1;versicherungsjahr
Wenn du bei der while Schleife bleiben willst, dann sollte das in etwa so aussehen:
j = ...
int versucherungsjahr = 1;
while (versicherungsjahr
Der Operator ++ erhöht übrigens den Wert einer Variable um eins.
Und wenn du das nächste Mal einen Quellcode postest, formatiere in bitte schön und setz ihn unter pre tags.
So sollte das dann am Schluss aussehen:
#include
int main()
{
int m, versicherungsjahr, j;
double versicherungsrate, versicherungsbeitrag;
versicherungsrate = 0.8;
versicherungsjahr = 1;
versicherungsbeitrag = 0.0;
printf("Bitte geben Sie die Groesse der Wohnung an:");
scanf("%d",&m);
printf("Bitte geben sie die Anzahl der Versicherungsjahre ein:");
scanf("%d", &j);
while (versicherungsjahr
mfg dixxi