#include<stdio.h>
int main()
{
int n,i;
double a;
scanf("%d",&n);
i=1;
a=0;
while(i<=n){
a=a+(1/i);
i++;
}
printf("%f",a);
return 0;
}
a=a+(1/i)错误,i比1大,得到的整数部分是0
所以,正确:
#include<stdio.h>
int main()
{
int n,i;
double a;
scanf("%d",&n);
i=1;
a=0;
while(i<=n){
a=a+(1.0/i);
i++;
}
printf("%f",a);
return 0;
}