Hallo, ich habe folgendes Problem. Ich muss eine Division durchführen bei der ich nur int als Datentyp verwenden darf aber ich muss auf ein Ergebnis mit 2 Nachkommastellen kommen. Ich finde einfach keine Lösung. Danke also #include<stdio.h> int main() { int sum; int prod; int divison; sum = 2+4+6; prod = 4*1*4; division = prod/sum; printf("sum %d\n", sum); printf("prod %d\n",prod); printf("sum %d\n", division); return 0; }
prod * 100 rechnen. dann bei der ausgabe noch das , setzen fertig.
Bitte die ganze Hausaufgabe posten. Dir ist bekannt, dass Ganzzahlenaithmetik abschneidet? Also: 19/10 = 1 9/10 = 0 Zur Aufgabe: Bestimme die Anzahl der Nachkommastellen, die du haben möchtest Multipliziere die zu dividierende Zahl mit dem entsprechenden Faktor Dann dividiere Die hintersten Stellen sind dann die Nachkommastellen. Erhalten kannst du die mit dem Modulo (Rest) Operator.
int prod_100 = prod * 100; int div_100 = prod_100 / sum; int div_vorkomma = div_100 / 100; int div_nachkomma = div_100 - div_vorkomma; printf("Division: %d.%d", div_vorkomma, div_nachkomma);
https://www.mikrocontroller.net/articles/Festkommaarithmetik Kurzform: prod vor der Division mit 100 multiplizieren:
1 | division = prod*100/sum; |
2 | printf("sum %d.%d\n", division/100,division%100); |
also ganz konkret hab ich bis jetzt genau das gemacht, ich brauche die kommastellen vom Ergebnis 805 / 8 ergibt mit kommt 100,62 aber ich komm nur auf 10062 wenn ich den dividend mit 100 multipliziere dann schreib ich unten beim printf int division; divison = 805/8; printf("division%d.\n, division); das Ergebnis lautet dann 1062.0 ich hätte gerne 100.62 danke
Daniel A. schrieb:
1 | > printf("sum %d.%d\n", division/100,division%100); |
Naja...
1 | printf("sum %d.%02d\n", division/100,division%100); |
... sieht "besser" aus wenn man an vorlaufende Nullen hinterm Komma/Punkt gewöhnt ist. ;-)
dankeschön ! :) jetzt habe ich es!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.