C :: Aufgabe #200 :: Lösung #1

1 Lösung Lösung öffentlich
#200

Body-Mass-Index (BMI)

Anfänger - C von hollst - 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:

BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).

Er wird wie folgt interpretiert:

Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5

Normalgewicht 18,5 – < 25

Präadipositas 25 – < 30

Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40

Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.

Viel Spaß!

#1
vote_ok
von kathleenw (3600 Punkte) - 25.06.2020 um 09:51 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>

int main(void)
{
    double gewicht, auswertung, groesse;

    //einlesen der Daten
    printf("Bitte Größe eingeben in cm:");
    scanf("%lf", &groesse);
    printf("Bitte Gewicht eingeben in kg (Nachkommastellen bitte mit . eingeben):");
    scanf("%lf", &gewicht);
    
    //Hier koennte noch eine Ueberpruefung der Daten hin ob es wirklich eine Zahl ist
    //und diese auch plausibel ist
    
    //BMI berechnen
    auswertung =gewicht / ((groesse/100)*(groesse/100));
    
    //Ausgabe der Auswertung
    printf("Ihr BMI beträgt: %.1f \nDas bedeutet: ", auswertung);

    if (auswertung<16)
        printf("Starkes Untergewicht \n");
    else if (auswertung>=16 && auswertung <17)
        printf("Mäßiges Untergewicht \n");
    else if (auswertung>=17 && auswertung <18.5)
        printf("Leichtes Untergewicht \n");
    else if (auswertung>=18.5 && auswertung <25)
        printf("Normalgewicht \n");
    else if (auswertung>=25 && auswertung <30)
        printf("Präadipositas \n");
    else if (auswertung>=30 && auswertung <35)
        printf("Adipositas Grad I \n");
    else if (auswertung>=35 && auswertung <40)
        printf("Adipositas Grad II \n");
    else if (auswertung>=40 && auswertung <100)
        // 100 als Grenze das der Wert inf(unendlich) bei falschen Eingaben abgefangen werden kann
        printf("Adipositas Grad III \n");
    else
        printf("Bei der Eingabe der Daten ist ein Fehler passiert.");
    
    return 0;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben