zoukankan      html  css  js  c++  java
  • 【求助】:关于printf打印信息错误的问题

      今天在看一个题目时,本来是想测试用递归方式计算斐波拉西数列第N项值的耗时。结果出现了意想不到的问题~

      废话不多说,直接上代码:

     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自身有关,所以特意发到博客园请大家看看这是什么原因,希望有大家帮忙解答!或者知道与什么有关,请留言交流,相互学习下~谢谢~:-)

  • 相关阅读:
    MySQL
    Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
    ps
    top
    sed
    nav响应范围一定要足够宽
    续上获取input的checked用prop时返回的是布尔值
    jq不应该用attr获取input的check值
    jq祖级元素
    一些jquery的坑
  • 原文地址:https://www.cnblogs.com/XiaoHDeBlog/p/2974277.html
Copyright © 2011-2022 走看看