
C语言:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include<stdio.h>intmain(){intn;doublea,b,sum,t;for(n=1;n<=20;n++){sum+=a/b;t=a;a=a+b...
#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;
}
以上是我编写的代码,但是为什么输出的结果却是负数呢?是数据类型错了吗? 展开
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;
}
以上是我编写的代码,但是为什么输出的结果却是负数呢?是数据类型错了吗? 展开
3个回答
展开全部
变量定义完了要赋初值啊,
a,b,sum由于没有初值,里边的值都是“垃圾值”,也就是没有意义的值
c是不支持局部变量自动赋初值的
所以的这段程序的运行结果肯定不是你想要的。。。
你可以先
a = 2;
b= 1;
sum = 0;一下
a,b,sum由于没有初值,里边的值都是“垃圾值”,也就是没有意义的值
c是不支持局部变量自动赋初值的
所以的这段程序的运行结果肯定不是你想要的。。。
你可以先
a = 2;
b= 1;
sum = 0;一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询