• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

funkcja licząca bmi

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
912 wizyt
pytanie zadane 8 kwietnia 2020 w C i C++ przez mehovic Nowicjusz (120 p.)

witam.postanowiłem poćwiczyć funkcje i nie wiem dlaczego ale nie mogę użyć funkcji jako funkcji. Przyjjrzycie się co zrobiłem źle?

#include <iostream>
#include <string>

using namespace std;
int waga, wzrost;
int bmi(int waga, int wzrost)
{
    return waga / (wzrost*wzrost/10000.);
}

int main()
{

  int waga, wzrost;
  float bmi;
  cout << "Podaj swoj wzrost(cm): ";
cin >> wzrost;
 
while(wzrost < 40 or wzrost > 300)
{
   cout << "Wzrost nieprawidlowy: Podaj ponownie: ";
   cin >> wzrost;
}
  cout << "Podaj swoja wage(kg): ";
cin >> waga;
 
while(waga < 30 or waga > 500)
{
   cout << "Waga nieprawidlowa: Podaj ponownie: ";
   cin >> waga;
}

bmi(waga, wzrost);
 
cout << "bmi(waga, wzrost)" <<endl;
cout << bmi << endl << endl;


if(bmi < 18)
{
    cout << "jestes za chudy.." << endl;
}

if(bmi > 18 and bmi < 25)
{
    cout<<"idealnie"<< endl;
}

if(bmi > 25)
{
    cout << "jestes za gruby." << endl;
}

return 0;
}


 

1 odpowiedź

+1 głos
odpowiedź 8 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
Musisz przypisac wartosc, ktora zwracasz do jakies zmiennej, wiec zmienna = funkcja i dopiero wtedy dalej mozesz jej uzywac.

BTW, nie nazywaj zmiennej i funkcji tak samo
komentarz 8 kwietnia 2020 przez mehovic Nowicjusz (120 p.)
dzięki jesteś totalnym szefem i będę pamiętał o twojej radzie
komentarz 9 kwietnia 2020 przez Noseczek12 Użytkownik (550 p.)

Zgadzam się z użytkownikiem DragonCoder. Przy okazji postanowiłem nieco zoptymalizować twój kod i stworzyć jedną dużą funkcję void, która wyświetla BMI i w zależności od jej wartości wstawia odpowiedni komentarz.

Jedyne co mnie zastanowiło, to zainicjalizowanie zmiennych waga i wzrost w nagłówku (jako zmienna globalna) i w int main (jako zmienna lokalna) jednocześnie. Najlepiej jest inicjalizować zmienne lokalnie, ponieważ potencjalny użytkownik programu nie będzie w stanie ingerować w wartości zmiennych w programie. Może nie w tym do liczenia BMI, ale bardziej chodzi o jakieś większe programy, które kiedyś będziesz pisał w przyszłości :)

#include <iostream>
#include <iomanip>

using namespace std;

void bmi(int waga, int wzrost)
{
    float wskaznik = waga / (wzrost*wzrost/10000.);

    if(wskaznik < 18)
    {
        cout << "Twoje BMI wynosi: " << setprecision(4) << wskaznik << endl;
        cout << "jestes za chudy.." << endl;
    }

    if(wskaznik > 18 && wskaznik < 25)
    {
        cout << "Twoje BMI wynosi: " << setprecision(4) << wskaznik << endl;
        cout << "Jest idealnie !" << endl;
    }

    if(wskaznik > 25)
    {
        cout << "Twoje BMI wynosi: " << setprecision(4) << wskaznik << endl;
        cout << "Jestes za gruby !" << endl;
    }
}

int main()
{
    int waga, wzrost;
    cout << "Podaj swoj wzrost(cm): ";
    cin >> wzrost;

    while(wzrost < 40 or wzrost > 300)
    {
        cout << "Wzrost nieprawidlowy: Podaj ponownie: ";
        cin >> wzrost;
    }
    cout << "Podaj swoja wage(kg): ";
    cin >> waga;

    while( waga < 30 or waga > 500)
    {
        cout << "Waga nieprawidlowa: Podaj ponownie: ";
        cin >> waga;
    }

    bmi(waga,wzrost);

    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 1,877 wizyt
0 głosów
1 odpowiedź 2,142 wizyt
0 głosów
2 odpowiedzi 4,419 wizyt

93,433 zapytań

142,428 odpowiedzi

322,661 komentarzy

62,796 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...