C语言:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

#include<stdio.h>
int main()
{
int n;
double a,b,sum,t;
for(n=1;n<=20;n++)
{
sum+=a/b;
t=a;
a=a+b;
b=t;
}
printf("%.20lf\n",sum);
return 0;
}

以上是我编写的代码,但是为什么输出的结果却是负数呢?是数据类型错了吗?
最新回答
乱世浮华つ

2024-04-25 04:40:15

变量定义完了要赋初值啊,
a,b,sum由于没有初值,里边的值都是“垃圾值”,也就是没有意义的值
c是不支持局部变量自动赋初值的
所以的这段程序的运行结果肯定不是你想要的。。。
你可以先
a = 2;
b= 1;
sum = 0;一下
空城已无她

2024-04-25 00:25:17

a、b的初始值。。。
辞慾

2024-04-25 04:08:43

飞跃第一部分21314要出个飞跃第一部分21314要出个