Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593900
  • 博文数量: 1958
  • 博客积分: 44693
  • 博客等级: 大将
  • 技术积分: 22125
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-29 15:19
文章分类

全部博文(1958)

文章存档

2012年(560)

2011年(1398)

分类: C/C++

2011-02-26 20:13:53

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int f(int n)
  4. {
  5.     if(n==0)
  6.       return 0;
  7.     else
  8.     if(n==1)
  9.       return 1;
  10.     else
  11.     return f(n-1)+f(n-2);
  12. }
  13. int main()
  14. {

  15.     printf("answer:%d\n",f(3));
  16.     system("pause");
  17.     return 0;
  18. }



程序要想识别f(n)这个函数,必须写出这个函数。
然后,
f(0)=0,这样的写法,在f(n)函数体中,和main中,都不被接受,这就不是在f(n)中,f不被编译器接受的问题。
而是这样写有语法问题。

因为f(0)的结果,是f(n)的函数体计算出来的,不是直接赋值得到的,如果要赋值的话,也要在函数体内实现才行。
于是,就有这两行代码:

  1.  if(n==0)
  2.       return 0;
  3.     else
  4.     if(n==1)
  5.       return 1;
阅读(1123) | 评论(0) | 转发(0) |
0

上一篇:alsa测试代码的编译

下一篇:fcntl.h File

给主人留下些什么吧!~~