C++ :: Aufgabe #210 :: Lösung #4

7 Lösungen Lösungen öffentlich
#210

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ß!

#4
1x
vote_ok
von Mathes (130 Punkte) - 18.01.2019 um 18:11 Uhr
Quellcode ausblenden C-Code
// c++17

#include <iostream>
#include <cmath>
#include <string>

using num_t = float;

auto calc_bmi(num_t const kg, num_t const m)
{
    return kg / std::pow(m, 2);
}

std::string bmi_to_text(num_t const bmi)
{
    if (bmi < 16.0)
    {
        return "Starkes Untergewicht";
    }
    
    if (bmi < 17.0)
    {
        return "Mäßiges Untergewicht";
    }

    if (bmi < 18.5)
    {
        return "Leichtes Untergewicht";
    }

    if (bmi < 25.0)
    {
        return "Normalgewicht";
    }

    if (bmi < 30.0)
    {
        return "Päadipositas";
    }

    if (bmi < 35.0)
    {
        return "Adipositas Grad I";
    }
    
    if (bmi < 40.0)
    {
        return "Adipositas Grad II";
    }
    
    return "Adipositas Grad III";
}


int main()
{
    std::cout << "Bitte Gewicht (kg) eingeben: ";
    num_t kg;
    std::cin >> kg;

    std::cout << "Bitte Größe in m eingeben: ";
    num_t m;
    std::cin >> m;

    auto const bmi{calc_bmi(kg, m)};

    std::cout << "BMI ist " << bmi << " -> " << bmi_to_text(bmi) << std::endl;
}

Kommentare:

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

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

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.