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

wartość zawracana przez funkcję

Ostatnio zmodyfikowano 2020-12-15 19:09
Autor Wiadomość
wwojtas
Temat założony przez niniejszego użytkownika
wartość zawracana przez funkcję
» 2020-12-14 21:50:39
Witam !

Robię zadanie ze SPOJA: FR_02_06 - BMI
Link:
https://pl.spoj.com/problems/FR_02_06/

Realizacja za pomocą vector.
Dlaczego funkcja obliczBMI zwraca mi wartość 1?

C/C++
#include <iostream>
#include <string>
#include <vector>

using namespace std;

vector < string > niedowaga;
vector < string > wartoscPrawidlowa;
vector < string > nadwaga;

float obliczBMI( float a, float b ) {
   
b = b / 100;
   
float bmi = a /( b * b );
   
return bmi;
}

void niedowagaBMI( string imie ) {
   
niedowaga.push_back( imie );
}

void wartoscPrawidlowaBMI( string imie ) {
   
wartoscPrawidlowa.push_back( imie );
}

void nadwagaBMI( string imie ) {
   
nadwaga.push_back( imie );
}

int main() {
   
int LiczbaTestow;
   
cin >> LiczbaTestow;
   
   
for( int i = 0; i < LiczbaTestow; i++ ) {
       
string imie;
       
float masaCialaWKilogramach = 0, wysokoscWCentymetrach = 0, bmi = 0;
       
cin >> imie >> masaCialaWKilogramach >> wysokoscWCentymetrach;
       
       
obliczBMI( masaCialaWKilogramach, wysokoscWCentymetrach );
       
       
// BMI zwraca 1 dla podanych wartosci
       
       
if( bmi < 18.5 ) niedowagaBMI( imie );
       
       
if( bmi >= 18.5 && bmi < 25 ) wartoscPrawidlowaBMI( imie );
       
       
if( bmi >= 25 ) nadwagaBMI( imie );
       
   
}
   
   
cout << "niedowaga" << endl;
   
for( int i = 0; i < niedowaga.size(); i++ ) {
       
cout << niedowaga[ i ] << endl;
   
}
   
cout << endl;
   
   
cout << "wartosc prawidlowa" << endl;
   
for( int i = 0; i < wartoscPrawidlowa.size(); i++ ) {
       
cout << wartoscPrawidlowa[ i ] << endl;
   
}
   
cout << endl;
   
   
cout << "nadwaga" << endl;
   
for( int i = 0; i < nadwaga.size(); i++ ) {
       
cout << nadwaga[ i ] << endl;
   
}
   
   
   
return 0;
}

[ \ cpp ]
P-177829
pekfos
» 2020-12-14 21:55:20
Dlaczego funkcja obliczBMI zwraca mi wartość 1?
Skąd wiesz że zwraca 1?
P-177830
wwojtas
Temat założony przez niniejszego użytkownika
» 2020-12-14 21:58:16
Wykorzystywałem system("pause") i cout.

Wartość przed wejściem w instrukcje if w funkcji głównej wyświetla 1.

P-177831
pekfos
» 2020-12-14 22:03:59
Ja bym powiedział że wartość to zero, w końcu przypisujesz zero do bmi i tej wartości używasz w warunkach. Co Ty wypisywałeś, że wyszło 1?
P-177832
wwojtas
Temat założony przez niniejszego użytkownika
» 2020-12-15 19:09:12
Super! Dzięki pekfos!

Działa
P-177839
« 1 »
  Strona 1 z 1