C语言,计算1/3-3/4+4/7-7/11+11/18-18/29+……前n项的和,n的值在程序运行时输入。

#include<stdio.h>
#include<math.h>
int main()
{
int n, i, shang=1, xia=3, sum = 0, temp;
sum = shang / xia;
printf("请输入n的值:");
scanf("%d", &n);
for (i = 2; i <n;i++)
{
temp = shang;
shang = xia;
xia = shang + temp;
sum = sum + shang / xia * pow(-1, i - 1);
}
printf("前%d项和为%d\n", n, sum);
}
哪里错了鸭?要怎么改正鸭?

shang xia sum temp应该是double 类型

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i;
    double  shang = 1, xia = 3, sum = 0, temp; //shang xia sum temp应该是double 类型
    sum = shang / xia;
    printf("请输入n的值:");
    scanf("%d", &n);
    for (i = 2; i <= n; i++) // 是 i <= n;
    {
        temp = shang;
        shang = xia;
        xia = shang + temp;
        sum = sum + shang / xia * pow(-1, i - 1);
    }
    printf("前%d项和为%lf\n", n, sum);
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632