程序求解s=1/1*2+1/2*3+…前五十项之和

#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)的格式