6×29fi iwr 13 1770:各位帮我看看这个程序~~~

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 21:41:21
#include "stdio.h"
main()
{
int sum=0,f[10],n;
for(n=3;n<11;n++)
{
f[n]=f[n-1]+f[n+1];
sum=sum+f[n];
scanf("%d",&f[n]);

}
for(n=3;n<11;n++)
printf("%d",sum);

}
这是求Fibonacci数列前10项的和(1,1,2,3,5,8,13,21,34,55)
运行后是乱码,哪里有错啊????
初始化了以后还是乱码啊

#include "stdio.h"
main()
{
int sum,f[9]={1,1},n;
sum=f[0]+f[1];
for(n=0;n<10;n++)
{
if(n<2)
printf("%d ",f[n]);
else
{f[n]=f[n-1]+f[n-2];
sum=sum+f[n];
printf("%d ",f[n]);
}
}
printf("sum=%d",sum);
}

这样就可以了!

#include "stdio.h"
void main()
{
int sum=0,f[10],n;
f[0]=1;
f[1]=1;
printf("%d\t%d\t",f[0],f[1]);
for(n=2;n<10;n++)
{
f[n]=f[n-1]+f[n-2];
sum=sum+f[n];
//scanf("%d",&f[n]);
printf("%d\t",f[n]);
}
// for(n=3;n<10;n++)
printf("sum=%d\n",sum);
}
循环时n应该到9,即<10,数组下标从0开始的
还有输出sum时,只是一个数,不用循环了吧。
要初始化前两个数值.
数列定义是f[n]=f[n-1]+f[n-2];
第一个循环中应该是输出各元素吧,不是从屏幕输入,因为数列是定义好的,不要输入的

#include "stdio.h"
main()
{
int sum=0,f[10],n;
f[0]=1;
f[1]=1;
sum=f[0]+f[1];
for(n=2;n<=9;n++)
{
f[n]=f[n-1]+f[n-2];
sum=sum+f[n];
}
printf("%d",sum);

}

请你仔细学习一下c语言有关数组这一章,数组的下标和数组界限的限定,当定义数组int f[10];数组下标是从0到就9的,所以循环控制语句中应写成n<10或n<=9;还有编译器是不检查数组越界的问题的!

没有对数列的前两项初始化,也就是f[0]=1,f[1]=1