Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pomoc z warunkami

Ostatnio zmodyfikowano 2017-11-11 16:57
Autor Wiadomość
Zigor36
Temat założony przez niniejszego użytkownika
Pomoc z warunkami
» 2017-11-11 16:49:06
Witam mam pewien problem z warunkami w moim programie sprawdzającym wskaźnik bmi.
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
float waga, wzrost, bmi;

int main()
{
    cout << "Podaj wage w kg: ";
    cin >> waga;
    cout << "Podaj wzrost w m: ";
    cin >> wzrost;
   
    bmi = waga /( wzrost * wzrost );
   
    if( bmi <= 18, 5 ) {
        cout << "Twoje bmi to: " << bmi << endl;
        cout << "Masz niedowage." << endl;
    }
    if( bmi > 18.5 && bmi <= 25 ) {
        cout << "Twoje bmi to: " << bmi << endl;
        cout << "Masz prawidlowa wage." << endl;
    }
    if( bmi > 25 ) {
        cout << "Twoje bmi to: " << bmi << endl;
        cout << "Masz nadwage" << endl;
    }
    else cout << "Zle dane." << endl;
   
    getch();
}

Po wykonaniu tego programu z przykładowymi danymi:
waga=55
wzrost=1.7
Na ekranie pokazuje się:

Podaj wage w kg: 55
Podaj wzrost w metrach: 170
Twoje bmi to: 19.0311
Masz niedowage.
Twoje bmi to: 19.0311
Masz prawidlowa wage.
Zle dane.

I moje pytanie brzmi, dlaczego wykonał się więcej niż jeden warunek. Próbowałem już wykorzystać else if'y, ale wtedy nawet jak bmi było>25, to pokazywało, że jest niedowaga.

P-166748
maly7
» 2017-11-11 16:57:03
Else dotyczy tylko ostatniego warunku, czyli jeśli bmi jest mniejsze od 25 to else się wykona. Wszystkie warunki muszą byc 'jednością', więc wszędzie dodaj else.
Dodatkowo taki mały błąd:
C/C++
if( bmi <= 18, 5 )
Oczywiście powinno byc 18.5.
P-166749
« 1 »
  Strona 1 z 1