BMI Rechner in C Programmieren (Fach Spezifische Softwaretechnik , so heisst das Schulfach )?
Wir sollen für die schule einen BMI Rechner programieren aber bei mir kommt immer das Gewicht als ergebnis . Thx für die Antworten im Voraus Code : (mit DEV C++ geschrieben)
include <stdio.h> include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */
float bmi(float l,float m);
int main(int argc, char *argv) {
float l; float m; float bmi_;
printf("Geben Sie ihre Koerpergewicht in Kg ein :");
scanf("%f",&m);
printf("Geben sie ihr Koerpergroesse in ein :");
scanf("%f",&l);
bmi_ = bmi(l,m);
printf("%f\n",bmi_);
system("PAUSE"); return 0; }
float bmi(float l,float m) {
return m/(l*l); }
2 Antworten
bmi = m / (l*l) ... wo hast du das?
btw... würd ich die körpergröße in cm abfragen und es intern umrechnen ...
ansonsten macht einer 1,8 der nächste macht 1.8 und der nächste macht 1.,,.5 .... und dein programm hängt sich auf ^^
Die formel hat uns unser lehrer gegeben .
Hab meinen Fehler gefunden wegen dem 1,8 und dem 1.8
hab die ganze zeit 1,8 eingegeb und das kann er ja nicht benutzen ,
desswegen war der BMI immer das Gewicht bei einer Größe von 1.74 m .. Thx für die Schnelle antwort .:D
du rufst ne funktion mit 2 parametern auf, gibst aber nur eine zurück
Parameter übergibst du der Funktion im Normalfall als Kopie. Die Funktion arbeitet danach mit den Parametern als lokale Variablen weiter. Dieses "float" sagt aus, dass es einen Rückgabewert geben soll, vom Typ float (Fließkommazahl). An sich kannst du nicht mehr als einen Rückgabewert haben, es sei denn du übergibst Pointer an eine Funktion, sodass die Funktion direkten Zugriff auf die Adresse der Variablen hat.
mach die ausgabe mal nach deinem funktions aufruf (wieso auch immer du ne eigene funktion dafür hast)
Funktionen machen das Programm deutlich anschaulicher, als wenn du alles einfach nur in die main-Funktion reinklatschen würdest. Ebenfalls sind Funktionen (Klassen, Vererbung usw. natürlich auch, aber darum gehts ja nicht) ein wichtiger Bestandteil der OOP!
Weiterhin ist es wahrscheinlich die Aufgabenstellung diese Funktion oben als Prototypen zu deklarieren und unten zu definieren...
float bmi(float l, float m) {
return m / (l/100.0f * l/100.0f);
}
Hab vergessen dazu zu schreiben, dass du dieses "l/100.0f" brauchst, wenn du cm angaben machst :)
edt: habs gefunden... aber ich peil deinen qc echt null..
"
float bmi(float l,float m) {
return m/(l*l);}
"
du rufst ne funktion mit 2 parametern auf, gibst aber nur eine zurück
und das einzige was du ausgibst ist bmi_ = bmi(l,m);
mach die ausgabe mal nach deinem funktions aufruf (wieso auch immer du ne eigene funktion dafür hast)