天道8 发表于 2020-12-4 14:15:28

C语言分数序列求和问题

#include<stdio.h>
int main()
{
        float sum_h,a,b,wa,wb,wc,c,i,sum;
        wa = 3;
        wb = 2;
        a =2;
        b =1;
        sum_h = 0;
        for(i=1;i<=20;i++)
                {
                wc =wa+wb;
                wb = wa;
                wa = wc;
                for(i=1;i<=20;i++)
                {
                c =a+b;
                b = a;
                a = c;
                sum = wb/b;
                }

        sum_h =sum_h+sum;
        }
        sum_h = sum_h = 2/1;
        printf("SUM为:%f",sum);
}
具体问题:2/1+3/2+5/3+8/5+13/8.....一直加到第二十个.
我想用两个循坏,一个当分母,一个当分子,但是不对.问题出在哪里

风过无痕1989 发表于 2020-12-6 16:06:31

你的程序我就不改了,我给你我的程序:// 求 数列 2/1 + 3/2 + 5/3 + 8/5 + 13/8 . . .前20项和
#include<stdio.h>
int main()
{
        float i, fz = 2, fm = 1, fmq = 0, sum = 0;
       
        sum = 2 / 1;
        for (i = 1;i < 20;i++)      // 第1项已经预先加了,所以加到第19项即可
        {
                fmq = fm;         // 将前一次的分母赋给前分母
                fm = fz;            // 将前一次的分子赋给新的分母
                fz = fmq + fm;      // 新的分子
                sum += fz / fm;
        }
        printf("SUM为: %f", sum);
        printf("\n");
}

********************************
SUM为: 32.660263
请按任意键继续 . . .
页: [1]
查看完整版本: C语言分数序列求和问题