鱼C论坛

 找回密码
 立即注册
查看: 2182|回复: 6

[已解决]输出斐波那契数列的最后一个数,遇到了问题

[复制链接]
发表于 2018-3-16 11:14:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
向大家求助一下,看了小甲鱼很久之前的C视频,输出斐波那契数列的前40个数,在提示下做到了,代码如下。想尝试一下只输出第40个数,结果发现全部输出时的第40个数与单独输出的第40个数是不一样的,这是为什么呢?把自己给看懵了,求大家指点一下,多谢!

  1. #include<stdio.h>
  2. int main()
  3. {
  4.         long int f1,f2;
  5.         int i;
  6.         f1=1;
  7.         f2=1;
  8.         for(i=1;i<=20;i++)
  9.         {
  10.                 printf("%ld,%ld\n",f1,f2);
  11.                 f1=f1+f2;
  12.                 f2=f2+f1;
  13.         }
  14.         printf("last number:%ld\n",f2);
  15.        
  16. }
复制代码



输出结果:
捕获.PNG
最佳答案
2018-3-16 12:44:12
你可以这样写的代码,增加一个last_num变量,就可以实现了,你可以复制代码,看一下不同
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         long int f1,f2,last_num;
  5.         int i;
  6.         f1=1;
  7.         f2=1;
  8.         for(i=1;i<=20;i++)
  9.         {
  10.                 last_num = f2;
  11.                                 printf("%ld,%ld\n",f1,f2);
  12.                 f1=f1+f2;
  13.                 f2=f2+f1;
  14.         }
  15.         printf("last number:%ld\n",last_num);
  16.         
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-16 11:25:20 | 显示全部楼层
你最后的那个值又在循环体里面前进了两步,相当于是第42个数的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-16 12:44:12 | 显示全部楼层    本楼为最佳答案   
你可以这样写的代码,增加一个last_num变量,就可以实现了,你可以复制代码,看一下不同
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         long int f1,f2,last_num;
  5.         int i;
  6.         f1=1;
  7.         f2=1;
  8.         for(i=1;i<=20;i++)
  9.         {
  10.                 last_num = f2;
  11.                                 printf("%ld,%ld\n",f1,f2);
  12.                 f1=f1+f2;
  13.                 f2=f2+f1;
  14.         }
  15.         printf("last number:%ld\n",last_num);
  16.         
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-17 07:47:49 | 显示全部楼层
把printf放在两个表达式的下面你会打开新世界的大门。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-17 14:09:58 | 显示全部楼层
BngThea 发表于 2018-3-16 11:25
你最后的那个值又在循环体里面前进了两步,相当于是第42个数的值

啊,明白了,非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-17 14:10:39 | 显示全部楼层
Zmynx_2017 发表于 2018-3-16 12:44
你可以这样写的代码,增加一个last_num变量,就可以实现了,你可以复制代码,看一下不同

感谢修改,明白是怎么回事啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-17 14:14:20 | 显示全部楼层
Dr丶温 发表于 2018-3-17 07:47
把printf放在两个表达式的下面你会打开新世界的大门。。。

不不,直接把printf放在两个表达式的下面是有问题的~我已经明白问题出在哪里了,你也可以看看其他两位的回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 04:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表