HankfromHell
Neues Mitglied
Hallo Leute,
ich bin gewiss nicht der erste der so ein Problem vorträgt aber ich werde leider aus den unzähligen Beiträgen nicht schlau.
Ich fange durch ein Elektrotechnik Studium grad erst an mit der Programmierung. Bisher habe ich schon SPS Programmiert aber mit einer "echte" Programmiersprache habe ich noch nie etwas zutun gehabt.
Von anderen Studierenden habe ich schon ein paar Übungsblätter bekommen mit denen ich mich schonmal ein bisschen beschäftigen wollte.
In einer Aufgabe soll durch vier Eingaben der BMI berechnet werden und bei der Ausgabe der Idealwert in abhängigkeit von Alter und Geschlecht berücksichtigt werden.
Leider klappt es nicht so ganz wie ich mir das vorstelle.
Ich schreibe mal meine Gedanken dazu auf sodass vielleicht jemand Punkt für Punkt sagen kann ob der Gedanke richtig oder falsch ist.
Als erstes habe ich die Variablen deklariert.
Die Größe soll in Meter angegeben werden. Daher habe ich mich für den Datentyp float entschieden.
Das Alter und das Gewicht wird ja als ganze Zahl eingegeben, daher hier Datentyp Integer.
Der berechnete BMI ist auch eine Kommazahl daher auch hier der Datentyp float.
Das Geschlecht wird durch den Benutzer entweder durch m oder w als char eingegeben.
Soweit so gut.
Dann folgen nacheinander die Eingabeaufforderungen.
Hier ist bereits das erste Problem. Komischerweise springt der Curser nach der Eingabe von einer Größe z.B. "1.84" (mit Punkt anstatt Komma) direkt an den Anfang der nächsten Zeile und das Programm läuft nicht weiter. Die do-while Schleife habe ich eben erst eingebaut weil ich nach eifriger Recherche bereits auf das Problem mit dem "Enter im Puffer" gestoßen bin und der fflush Befehl bei mir anscheinend nicht funktioniert.
Vorher funktionierte es, zumindest wenn ich vor das % Zeichen eine 3 geschrieben habe sodass er 3 Ziffern einliest.
Nachdem ich die do-while Schleife eingebaut habe funktioniert das leider nicht mehr.
Hier ist mal das Programm für euch.
Ich bin für eure Hilfe sehr dankbar.
Liebe Grüße
ich bin gewiss nicht der erste der so ein Problem vorträgt aber ich werde leider aus den unzähligen Beiträgen nicht schlau.
Ich fange durch ein Elektrotechnik Studium grad erst an mit der Programmierung. Bisher habe ich schon SPS Programmiert aber mit einer "echte" Programmiersprache habe ich noch nie etwas zutun gehabt.
Von anderen Studierenden habe ich schon ein paar Übungsblätter bekommen mit denen ich mich schonmal ein bisschen beschäftigen wollte.
In einer Aufgabe soll durch vier Eingaben der BMI berechnet werden und bei der Ausgabe der Idealwert in abhängigkeit von Alter und Geschlecht berücksichtigt werden.
Leider klappt es nicht so ganz wie ich mir das vorstelle.
Ich schreibe mal meine Gedanken dazu auf sodass vielleicht jemand Punkt für Punkt sagen kann ob der Gedanke richtig oder falsch ist.
Als erstes habe ich die Variablen deklariert.
Die Größe soll in Meter angegeben werden. Daher habe ich mich für den Datentyp float entschieden.
Das Alter und das Gewicht wird ja als ganze Zahl eingegeben, daher hier Datentyp Integer.
Der berechnete BMI ist auch eine Kommazahl daher auch hier der Datentyp float.
Das Geschlecht wird durch den Benutzer entweder durch m oder w als char eingegeben.
Soweit so gut.
Dann folgen nacheinander die Eingabeaufforderungen.
Hier ist bereits das erste Problem. Komischerweise springt der Curser nach der Eingabe von einer Größe z.B. "1.84" (mit Punkt anstatt Komma) direkt an den Anfang der nächsten Zeile und das Programm läuft nicht weiter. Die do-while Schleife habe ich eben erst eingebaut weil ich nach eifriger Recherche bereits auf das Problem mit dem "Enter im Puffer" gestoßen bin und der fflush Befehl bei mir anscheinend nicht funktioniert.
Vorher funktionierte es, zumindest wenn ich vor das % Zeichen eine 3 geschrieben habe sodass er 3 Ziffern einliest.
Nachdem ich die do-while Schleife eingebaut habe funktioniert das leider nicht mehr.
Hier ist mal das Programm für euch.
C:
float groesse;
int gewicht;
int alter;
float bmi;
char geschlecht;
printf("Groesse?\n");
do {
scanf("% f\n", &groesse);
} while (getchar() != '\n');
printf("Gewicht?\n");
do {
scanf("% d\n", &gewicht);
} while (getchar() != '\n');
printf("Alter?\n");
do {
scanf("% d\n", &alter);
} while (getchar() != '\n');
printf("Geschlecht? m oder w\n");
do {
scanf(" %c", &geschlecht);
} while (getchar() != '\n');
bmi = gewicht / (groesse * groesse);
printf("BMI: %f\n", bmi);
Liebe Grüße
Zuletzt bearbeitet von einem Moderator: