#include"stdio.h"
void main()
{int i;
float m,n,a,s,t;
m=1;
n=2;
a=0;
for(i=1;i<=20;i++)
{a=n/m;
s=s+a;
t=m;
m=n;
n=t+n;
}
printf("%.3f",s);
}
我就不明白哪里有问题?运行出来是错的。
。。。问题打错了不好意思。是有一分数数列,2/1,3/2,5/3,8/5,13/8,21/13……,
追答你那个s没有初始化 。。。 前面加句s=0;就好
追问非常感谢!初始化之后好了。
不过貌似老师说不初始化就是0吧,我上课也没听很清楚。
请问下是个啥原理?说清楚就采纳你了。
都怪我上课睡觉太多了。
不出始化就是随机值阿 = =。。。。。
不能用的 。。
必须给它赋值才能用
看来我期末是挂科的节奏了,唉。。
涨姿势了。
呵呵 没关心 这些都不是很难 好好学觉得挺有趣的~
尤其是弄清楚一个问题,或者自己做出题目的时候
楼下说对了,是S没初始化,算法没问题,初始化之后就好了。
我也不明白为什么S要初始化。
因为在你定义变量时相当于给了一个空间地地址而里面的值是随机的,所以要初始化。
谢谢您的回答,不过不是这个原因,
是因为S没初始化,我初始化之后就好了,我也不明白为什么?
您能说清楚吗?
因为你给的这几个数原因吧,或者是赶巧了用的float比较好,你想下就知道了,因为每次都会计算机自动的省略,当然目前的需求,足够了,要是精确的计算……那比较麻烦,看你没有那个需求,也没有必要讲了……