#include<stdio.h>
// this is a code calculating s=1/2+1/3+1/4+...+1/n=1
int main()
{
int n,m,d;
double s;
printf("enter the number of loop:");
scanf("%d",&n);
for (s=0,m=1,d=2;m<=n;m+=1,d*=2)
{
s+=1/d;
printf("when loop =%d,d=%d,s=%f\n ",m,d,s);
}
return 0;
这是本人编写的一段错误的代码,目的为计算2/1+3/1+.....+n/1的值,
错误的原因是当定义 d 为整形时,1/d无论如何都是0.
所以正确的方法是定义d为浮点型,这样1/d也相应为浮点型.