[C] Wertübergabe ohne Globale Variable
Hallo erst mal,
Ich hab mal mit C angefangen Programmieren zu lernen, und mal zu Übungszwecken so nen Schwachsinn wie nen BMI-Rechner programmiert.
Was ich dabei reinbringen wollt war ne Funktion auserhalb der main()-Funktion, die zur Berechnung des BMI's zuständig ist.
Diese Funktion sollte dann den ausgerechneten Wert an die main()-Funktion zurückgeben, und diese den Wert dann ausgeben. Was das Programm aber permanent nicht wollte, ist den Wert zurückzugeben oder gar auszurechnen.
Code:
#include <stdio.h>
void rechnung(ge,gr){
float BMI;
BMI = ge/gr/gr;
return BMI;
}
int main(void){
int gewicht;
float groesse;
float BMI;
printf("Bitte Gewicht in KG angeben:");
scanf("%d",&gewicht);
printf("Bitte Groesse in Meter angeben:");
scanf("%f",&groesse);
BMI = rechnung(gewicht,groesse);
printf("%.2f",BMI);
fflush(stdin);
getchar();
return 0;
}
Hier das Listing.
Hab keine Ahnung mehr ob alles noch stimmt, aber das grundgerüst des Programms sollte es wiederspiegeln, hab einfach schon lange rumprobiert =)
Naja die einzige frage die ich jetzt hab ist:"Kann ich den wert zurückgeben ohne ihn an ein Globale Variabel zu übergeben?"
if(Antwort = ja){
printf("PLEASE HELP");
}
else{
printf("OK! Problem gelöst");
}
hehe^^ also haut rein...
Re: [C] Wertübergabe ohne Globale Variable
Zitat:
Zitat von DevilC
Code:
void rechnung(ge,gr){
float BMI;
BMI = ge/gr/gr;
return BMI;
}
Es würde mich sehr wundern wenn dein Compiler das so, ohne zu protestieren, hinnimmt!
Eine Funktion mit "Rückgabetyp void" sollte normalerweise nichts zurückgeben (möglich wären "return (void) 0;" oder "return;").
Was du meinst wäre "float rechnung(ge,gr)", da ein float (in diesem Fall der Inhalt der Variablen "BMI") zurückggeben werden soll.
PS: die Funktion "rechnung" sieht meines Erachtens grauenhaft aus!
mfG. BlackBerry