[c++] Problem z typem danych zwracanym przy dzieleniu

0

Witam,
Mam kłopot z programem. Wszystko działa poza jedną rzeczą -> gdy w pętli dziele 1/i(gdzie i jest typu int), wynik dzielenia jest cały czas taki jakbym zastosował floor z biblioteki cmath. Wujek Google pomógł mi znaleźć tylko jeden podobny przypadek, ale bez wyjaśnienia jak to rozwiązać.
Pracuje pod ubuntu, i kompiluje w g++. Mógłby ktoś to dla mnie sprawdzić?
Z góry dzięki

/*3. Obliczyć sumę n pierwszych wyrazów ciągu harmonicznego tj.
1 + 1⁄2 + 1/3 + 1⁄4 ... + 1/n
przy czym wartość n zostanie podana z klawiatury.*/

#include<iostream>
#include<cmath>

using namespace std;
double zlicz(int n);

int main()
{
  unsigned int n;
  cout << "Program oblicza sumę n pierwszych wyrazów ciągu harmonicznego, podaj parametr n" <<endl;
  cin >> n;
  cout << "Suma " <<n<<" elementów to " <<zlicz(n)<< endl;
}

double zlicz(int n)
{
  double suma=0;
  for(int i=1; i<=n; i++)
{
    suma=suma + (1/i);
 }
  return suma;
}
0
suma += 1.0/i;

Bo jeśli obie liczby są intami to dzielenie jest całkowite.

0

Dzięki:)

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