题目:一个叫y的数组里面定义20个元素 前两个都为1 其余为0 用fibonacci求后面18位数字
运行环境:WIN8.1
软件:VS2013
我的代码是这样的:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, z, y[20] = { 1, 1 }; //定义变量,并为y数组赋值
z = 0;
for (i = 2; i <= 19; i++);
{
y[i] = y[z] + y[z+1];
//下面是我按着程序推算的结果 为啥输出结果就不一样呢 还一点都不一样..
//y[2] = y[0] + y[1] =2
//y[3] = y[1] + y[2] =3
//y[4] = y[2] + y[3] =5
}
for (i = 19; i >= 0; i--) //输出数组y中的内容
{
printf("%d\n", y[i]);
}
system("pause");
return 0;
}
#include
int main(void){
int n=0;
int tmp=0;
int f1=1;
int f2=1;
printf("Please input n:");
scanf("%d",&n);
while(f2 //f1为......
答案就在这里:c语言Fibonacci数列
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
y[i] = y[z] + y[z+1];
->
y[i] = y[i-1] + y[i-2];
你这代码问题太多了。
首先这是C++,其次你的循环中z没有变化,另外你用system 做什么?
推荐你这个,http://blog.csdn.net/nomasp/article/details/45343891
你的表达式有问题
BUG:Z一直是0
解决方法:在i++后面加个z++吧。