BMI ausrechnen auf C? ?

Folgendes Problem - (programmieren, BMI, C (Programmiersprache))

4 Antworten

Integer sind Ganzzahlen, also 1,2,3,4 usw... - nix dazwischen. Ein Wert "1.80" existiert als Integer nicht.

Dein Programm rechnet also in dem Beispiel 80 / (187 * 187), das wäre 0.00228 und das wäre zum einen ein falscher BMI und zum andere würde der Wert wegen des Integers auf 0 gerundet werden. Und diese 0 siehst du ja auch.

Sergeant Pinpack hat schon die richtige Lösung gegeben - du musst die Variablen als float oder double deklarieren, nicht als Integer. Und außerdem darfst du nicht "1,87" eingeben, sondern musst "1.87", also "1 Punkt 87" eingeben. Das wäre sonst der nächste Fehler.

das Problem ist dass bei höhe*höhe irgendwas mit 180 hoch 2 raus kommt. Wenn du also einen realistischen wert eingibst kommst du auf 80 / 30.000 und da kommt zum integer natürlich 0 raus. Deine Formel ist einfach falsch. Die Größe muss in Metern angegeben werden und nicht in Zentimetern.

Deine BMI-Formel ist schlicht falsch. Zur Berechnung wird die Körpergröße in Metern angegeben, nicht in Zentimetern.

Du rechnest in Zentimetern, daher ist dein Ergebnis kleiner 1 ("0" bei Verwendung von int).



SKEPTA12 
Fragesteller
 24.09.2016, 18:53

Bei einer Eingabe von 1,80 wird mir ein BMI von 80 als Ergebnis geliefert

0
SergeantPinpack  24.09.2016, 18:56
@SKEPTA12

Entweder bist du extremst übergewichtig, oder du solltest mal deine Variablendeklaration überprüfen. "1,80" ist kein Integer-Wert und scanf("%d") funktioniert natürlich auch nicht.

0
SKEPTA12 
Fragesteller
 24.09.2016, 18:58
@SergeantPinpack

Es ist so das der Wert "1,80" nicht erkannt wird, bloß weiß ich jetzt nicht welchen syntax ich verwenden soll. Mehr als scanf und printf hab ich zurzeit nicht drauf.

0
SergeantPinpack  24.09.2016, 19:01
@SKEPTA12

Du deklarierst deine Variablen als "float" und liest die Werte mit scanf("%f") ein.

1