#include <iostream>
using namespace std;
double getProcent(long long int _pPopulation, long long int _wPopulation)
{
return (_pPopulation*100)/_wPopulation;
}
int main()
{
long long int polandPopulation,worldPopulation;
double result;
cout << "Podaj liczbe ludnosci w Polsce: ";
cin >> polandPopulation;
cout << "Podaj liczbe ludnosci swiata: ";
cin >> worldPopulation;
result = getProcent(polandPopulation,worldPopulation);
cout <<"Populacja Polski stanowi "<<result<<" % populacji swiata."<<endl;
return 0;
}
Zadanie polega na tym, aby obliczyc % populacji jaki stanowi Polska względem populacji świata. Zadanie mówi, aby zmienne populacji deklarować jako long long int.
Niestety nie wiem czemy funkcja mimo jasno określonego typu zawsze wywala wartość całkowitą. Próbowałam rzutowania zarówno w ciele funkcji jak i w main() oraz stosowania double,long double,float, long float i ZAWSZE wyrzuca ze stanowi 0%. Zawsze wyrzuca liczbę 0 a w odpowiedziach jest 0,55782%. Nie wiem już co mam robić :/
EDIT: Rozwiązany przez ustawienie tego samego typu zwracanej wartości i typu argumentów. Rozumiem, że typ zwracany musi byc identyczny jak typy argumentów ?