Can someone please tell me what I am doing wrong? I cannot figure it out. Maybe it is my math somewhere. In short, the nth harmonic number is defined as 1 + ½ + ⅓ + … + 1/n. The base case is Harmonic Sum 1 equals one.
Code:
#include <stdio.h>
int main (void)
{
double n, soln;
double harmonic_num (double num);
printf("Harmonic numbers \n");
do
{
printf("Enter a positive number (or 0 to quit) \n");
scanf("%lf", &n);
if (n == 0)
{
printf("Goodbye! \n");
system("PAUSE");
return;
}
if (n == 1)
{
printf("Harmonic number %lf is %.6lf", n, harmonic_num(n));
return;
}
else
soln = harmonic_num(n);
printf("Harmonic number %.0lf is %.6lf", n, soln);
printf("\n");
} while (n != 0);
system ("PAUSE");
return 0;
}
//Harmonic Function
double harmonic_num (double num)
{
double k;
double value = (1/num);
k = num;
while (k <= 1)
{
value += 1+ AZ`(1/(k-1));
k--;
}
return value;
}