主题:C语言中数组的问题
cyp2010
[专家分:10] 发布于 2010-04-10 17:26:00
解决Fibonacci数列的程序(输出前20项)程序如下
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1}; /*定义一个20项的一维数组*/
for(i=2;1<20;i++)
for{i}=f[i-2]+f[1-1]; /*等于前两项之和*/
for(i=0;i<20;i++)
{
if(i%5==0)
printf("\n");
printf("%12d",f[i]) ;
}
printf("\n");
}
这个程序没错误吧??哪位高手给把每行给注释一下,顺便给解释一下这个程序。
如果自己想让他输出前几项就输出前几项给怎么写?
回复列表 (共7个回复)
沙发
liudan319 [专家分:3780] 发布于 2010-04-10 22:06:00
看看你的for语句写的for{i}=f[i-2]+f[1-1];
太粗心了,下面已经帮你改好了。
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1}; /*定义一个20项的一维数组*/
for(i=2;1<20;i++)
for[i]=f[i-2]+f[i-1]; /*等于前两项之和*/
for(i=0;i<20;i++)
{
if(i%5==0)
printf("\n");
printf("%12d",f[i]) ;
}
printf("\n");
}
如果想让他输出前几项就输出前几项,就在定义个变量
int num;
scanf(“%d”,&num)
然后在输出语句的for循环中i<num就好了
先到这里学习下再来pfan吧 http://cplus.5d6d.com/bbs.php
板凳
cyp2010 [专家分:10] 发布于 2010-04-10 23:12:00
麻烦给每行注释一下 看看我的理解有没有错 提前谢谢了
3 楼
雪光风剑 [专家分:27190] 发布于 2010-04-11 06:58:00
还是有错,1楼改代码不认真,批评
for(i=2;1<20;i++)//循环结束条件怎么写成1<20了?永真
for[i]=f[i-2]+f[i-1]; //这里明显应该是f[i]=f[i-2]+f[i-1]
4 楼
liudan319 [专家分:3780] 发布于 2010-04-11 10:20:00
[quote]还是有错,1楼改代码不认真,批评
for(i=2;1<20;i++)//循环结束条件怎么写成1<20了?永真
for[i]=f[i-2]+f[i-1]; //这里明显应该是f[i]=f[i-2]+f[i-1][/quote]
接受批评,呵呵。
5 楼
dinghao517 [专家分:20] 发布于 2010-04-11 12:04:00
很多粗心错误,可以编译检查一下
6 楼
sxm227 [专家分:10] 发布于 2010-04-12 09:01:00
深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询
7 楼
C行天下 [专家分:10] 发布于 2010-04-13 12:50:00
整理了一下,这个程序能满足你的要求!
#include<stdio.h>
main()
{
int i,t;
long f[20]={1,1}; /*定义一个20项的一维数组*/
scanf("%d",&t);/*输入一个数控制输出项*/
for(i=2;i<20;i++)
f[i]=f[i-1]+f[i-2]; /*后一项等于前两项之和*/
for(i=0;i<t;i++) /*控制输出的循环*/
{
if (i%5==0) /*每5项就换一次行*/
printf("\n");
printf ("%5d",f[i]);
}
getch();
}
我来回复