przeliczanie procenta ludności

0

Witam dlaczego w tym programie wypisuje mi 0%

/*Napisz program który poprosi użytkownika o wpisanie bieżącej liczby populacji świata i bieżącaj liczby populacji Polski(albo innego wybranego kraju)
i zapisze otrzymane dane w zmiennych typu long long. Potem program powinien obliczyć i wypisać procent jaki populacja Polski stanowi całej populacji świata
Podaj liczbę ludności świata:689875899
Podaj liczbę ludności Polski:38482919
Populacja polski stanowi 0,55782% populaji świata*/
#include <iostream>
using namespace std;
long long WczytajDane()
{
    long long ludnoscswiata;
    cout << "podaj ludnosc swiata";
    cin >> ludnoscswiata;
    return ludnoscswiata;
}
long long WczytajDane2()
{
    long long ludnoscpolski;
    cout << "podaj ludnosc Polski";
    cin >> ludnoscpolski;
    return ludnoscpolski;
}
void prezentacjaWyniku(long long ludsw, long long ludpol)
{
    long long wynik;
    cout << "ludnosc swiata" << ludsw;
    cout << "ludnosc polski" << ludpol;
    wynik = (ludpol / ludsw) * 100;
    cout << "populacja polski stanowi " << wynik << "%"
         << "populacji swiata";
}
int main()
{
    long long ludnoscswiata = WczytajDane();
    long long ludnoscpolski = WczytajDane2();
    prezentacjaWyniku(ludnoscswiata, ludnoscpolski);
}
0

może ktoś napisać co jest źle dokładniej?

4

Dzielenie intów w C(++) zwraca inta. Żeby to zrobić, zaokrągla w kierunku zera. Stąt też, na przykład, 5 / 3 == 1, czy (w Twoim przykładzie) (38'482'919 / 689'875'899) * 100 == 0 * 100 == 0.

Dziel na double’ach, albo przynajmniej mnóż przed dzieleniem (wtedy otrzymasz wartość procentową zaokrągloną w dół — co może być tym, o co Ci chodzi, chociaż raczej nie jest).

Na przyszłość: debugger jest dużo lepszym (bo szybszym i pewniejszym) narzędziem do znajdowania takich błędów niż forum…


EDYCJA: swoją drogą, liczba ludności świata przedstawiona przez autora zadania (689 875 899) jest… no tak z jedenaście razy zaniżona. Internet podpowiada, że byłaby to wartość z pierwszej połowy XVIII w. (w 1700 r. było ≈610 000 000, a w 1760 r. — ≈770 000 000).

1

@Althorion:
Sądzisz, że p Prada pominął ten temat ?

0
ZrobieDobrze napisał(a):

@Althorion:
Sądzisz, że p Prada pominął ten temat ?

już sobie poradziłam i rzeczywiście był temat rzutowania

1 użytkowników online, w tym zalogowanych: 0, gości: 1