原错误程序
#include<stdio.h>
int main()
{
double sum=0,j;
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=1/i;//刚刚犯的错误
sum=sum+j;
}
printf("sum = %lf",sum);
return 0;
}
在j=1/i中,原目的是导出double型
但是因为“1”是int型的数字,导致输出结果只有int型,即使要求输出double型,也只是在原本的double型后加了6个0,所以要将“1”改为“1.0”
更改后:
#include<stdio.h>
int main()
{
double sum=0,j;
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=1.0/i;
sum=sum+j;
}
printf("sum = %lf",sum);
return 0;
}