像这种序列求和该怎么写代码?

试了几次编译都没有问题,就是一直运行不对,能不能帮忙讲解一下。实在是没有办法了。
img

第3题:

#include <stdio.h>
int main(void)
{
    int m=0,n=0,i=0;
    double sum;
    scanf("%d%d",&m,&n);
    for(i=m; i<=n; i++)
    {
        sum+=i*i+1/(double)i; //这里累加,1/i要先把i强制转换为double型 
    }
    printf("%lf\n",sum);
    return 0;
}

img
第4题:

#include <stdio.h>
int main(void)
{
    int n=0,i=0,j=1;
    double sum=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        sum+=j*(double)(i+1)/(double)(2*i+1); //这里同样要进行强制类型转换 
        j=-j; //j控制符号 
    }
    printf("%lf\n",sum);
    return 0;
}

img

你可能是不理解整除算法
比如 2 / 3 是等于0的,但是你的题目是需要 2 / 3 = 0.66666666667,
因为2和3都是整数,结果是等于0,所以要让它们变成浮点型,
可以像楼1那样,强制转换成double,也可以 1.0 * 2 / 3

img