#include
int main()
{
int a,b,i;
double sum,item;
sum=0;
a=1;
b=2;
for(i=1;i<=50;i++)
{
a=a+1;
b=b+1;
item=1/(a*b);
sum=sum+item;
}
printf("%.0f\n",sum);
return 0;
} 为什么不行呀
供参考:
#include<stdio.h>
int main()
{
int a,b,i;
double sum,item;
sum=0;
//a=1;
//b=2;
for(i=1;i<=50;i++)
{
a=i; //a+1;
b=i+1; //b+1;
item=1.0/(a*b); //item=1/(a*b);
sum=sum+item;
}
printf("%f\n",sum);
return 0;
}
item=1/(a*b);改成 item = 1.0 / (a * b);
否则item一直为0,因为a,b都是整数,1/(a * b)是整除,没有小数。
理解一下:1/2-1/3=3/(2 * 3)-2/(2 * 3)=1/(2 * 3)
这题是提醒你,别忘了高中刷的那些题
我感觉可以把for循环中改为++i.然后写成sum=sum+1/ i*(i+1)的格式