Verständnisfrage...Oo
-
Hi, kurze Frage,
sitze hier und lerne fuer klausur....Oo
aber eine Sache verstehe ich nciht soo ganz, könnte sich mal bitte jemand
der Sache annehmen???
Einfach folgenden Quellcode kopieren, Compillieren und ausführen.#include <stdlib.h> int franz, gans; float thermoKoeff; int main(void) { thermoKoeff= 123.456; myFunction1(); printf ("%i %i %5.3f\n", franz, gans, thermoKoeff); system("pause"); return 0; } void myFunction1(void) { float thermokoeff; thermokoeff = 456.789; gans = 42; printf("gans: %i , franz: %i \n", gans, franz); system("pause >nul"); franz = myFunction2(thermoKoeff); franz = franz + gans; } int myFunction2(float inputVariable) { printf("%.3f %i\n", inputVariable, gans); gans = gans * inputVariable; printf("gans: %i , franz: %i\n", gans, franz); system("pause >nul"); return gans; }
Nun weiss ich nicht, wieso er in der Zeile aus 'int myFunction2(float InputVariable)'
in der er eigtl. die Variable 'thermoKoeff' übergeben sollte, er mit 0.0
rechnet. Die Funktion soll auch nen int zurückgeben, lässt er dann einfach die nachkommastellen weg???Danke fuer eure Hilfe.... cu
-
hallo
bei einem float zu int wird einfach die nachkommastelle weggelassen.
richtig.hier:
gans = gans * inputVariable;
ist zu beachten, dass gans int ist, und inputVaribale ist float.
erst wird die rechte seite errechnet mit nachkommastelle, und erst bei der zuweisung die nachkommastelle abgeschnitten.float x=3.77f;
int y=x; //ggf. compilerwarnung verkürzung
in y steht 3;
-
trotzdem gibt es ein problem
thermokoeff = 456.789 , und thermokoeff wird an die funktion übergeben.
Aber in der Funktion2 ist der Wert der übergebenen Variable = 0.0
wie so das???
thx
-
Hi,
weil du zwei Variablen hast:
thermoKoeff und thermokoeff.