输出斐波那契数列的最后一个数,遇到了问题
向大家求助一下,看了小甲鱼很久之前的C视频,输出斐波那契数列的前40个数,在提示下做到了,代码如下。想尝试一下只输出第40个数,结果发现全部输出时的第40个数与单独输出的第40个数是不一样的,这是为什么呢?把自己给看懵了,求大家指点一下,多谢!#include<stdio.h>
int main()
{
long int f1,f2;
int i;
f1=1;
f2=1;
for(i=1;i<=20;i++)
{
printf("%ld,%ld\n",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
printf("last number:%ld\n",f2);
}
输出结果:
你最后的那个值又在循环体里面前进了两步,相当于是第42个数的值 你可以这样写的代码,增加一个last_num变量,就可以实现了,你可以复制代码,看一下不同
#include<stdio.h>
int main()
{
long int f1,f2,last_num;
int i;
f1=1;
f2=1;
for(i=1;i<=20;i++)
{
last_num = f2;
printf("%ld,%ld\n",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
printf("last number:%ld\n",last_num);
} 把printf放在两个表达式的下面你会打开新世界的大门。。。{:10_256:} BngThea 发表于 2018-3-16 11:25
你最后的那个值又在循环体里面前进了两步,相当于是第42个数的值
啊,明白了,非常感谢! Zmynx_2017 发表于 2018-3-16 12:44
你可以这样写的代码,增加一个last_num变量,就可以实现了,你可以复制代码,看一下不同
感谢修改,明白是怎么回事啦! Dr丶温 发表于 2018-3-17 07:47
把printf放在两个表达式的下面你会打开新世界的大门。。。
不不,直接把printf放在两个表达式的下面是有问题的~我已经明白问题出在哪里了,你也可以看看其他两位的回复{:5_109:}
页:
[1]