【求助】:关于printf打印信息错误的问题
2013-03-21 20:46
218 查看
今天在看一个题目时,本来是想测试用递归方式计算斐波拉西数列第N项值的耗时。结果出现了意想不到的问题~
废话不多说,直接上代码:
请注意第26行,我输入30,如果用第26行输出结果,则输出结果如下,显然结果是错误的:
但如果分成两句写,再输入30,用27、28行输出,则输出就对了~ 如下:
我是在Microsoft的WIN7 && VS2010 ultimate下编译执行的,计算结果是对的,duration两次值都是一样的,只不过打印结果不对。按我自己理解printf不应该跟打印的变量数有关吧,不知道到底是什么原因,有人说用一行打印可能是printf的某种状态更改了,跟VS2010自身有关,所以特意发到博客园请大家看看这是什么原因,希望有大家帮忙解答!或者知道与什么有关,请留言交流,相互学习下~谢谢~:-)
废话不多说,直接上代码:
1 #include <stdio.h> 2 #include <time.h> 3 4 long long Fibonacci(unsigned int n) 5 { 6 if(n<=0) 7 return 0; 8 if(n==1) 9 return 1; 10 return Fibonacci(n-1)+Fibonacci(n-2); 11 } 12 13 int main() 14 { 15 16 clock_t t1,t2; 17 unsigned int num; 18 long long result = 0; 19 scanf("%d",&num); 20 t1 = clock(); 21 result = Fibonacci(num); 22 t2 = clock(); 23 double duration; 24 duration = (double)(t2-t1)/CLOCKS_PER_SEC; 25 26 //printf("%d,%f",result,duration); 27 printf("%d\n",result); 28 printf("%f",duration); 29 30 return 0; 31 }
请注意第26行,我输入30,如果用第26行输出结果,则输出结果如下,显然结果是错误的:
但如果分成两句写,再输入30,用27、28行输出,则输出就对了~ 如下:
我是在Microsoft的WIN7 && VS2010 ultimate下编译执行的,计算结果是对的,duration两次值都是一样的,只不过打印结果不对。按我自己理解printf不应该跟打印的变量数有关吧,不知道到底是什么原因,有人说用一行打印可能是printf的某种状态更改了,跟VS2010自身有关,所以特意发到博客园请大家看看这是什么原因,希望有大家帮忙解答!或者知道与什么有关,请留言交流,相互学习下~谢谢~:-)
相关文章推荐
- 关于记录错误信息到文本文件的几点问题讨论
- 关于struts2验证框架,在与spring整合后重复输出错误信息的问题
- printf()函数关于不能打印字符的问题
- 【原】iOS学习之Xcode8关于控制台不打印错误信息
- 关于断点调试输出信息出不来,用po打印变量也没有值的问题
- 求助!关于页面打印的问题
- 关于printf不打印的问题
- 求助:关于打印的问题?????
- 关于一个VC++6.0技术内幕的COM错误问题,错误信息:error C2504: 'IMotion' : base class undefined
- 关于POSIX消息队列mq_open提示错误信息:Invalid argument的问题
- 关于自己制作扑克牌打印的问题,求助?
- [求助]关于Vsiual Studio.NET 2005中Error List种错误的定位问题
- 关于vs2013中printf printf_s的错误问题的解决方法
- 由于错误 0xC0011008“从 XML 加载时出错。没有关于此问题的更详细错误信息,因为没有传递可存储详细错误信息的 Events 对象。”,无法加载包。
- 关于log4j的配置,控制台打印和错误信息输出到指定文件
- 关于解决水晶报表打印次数限制的问题
- 关于 mysql的 datatime类型默认值 0000-00-00 00:00:00 错误或者说没办法创建类型为时间的问题
- 关于asp.net[没有相关的源行]错误的解决方法及IIS安装问题
- 标准库函数perror用法(打印出错误原因信息字符串)