首页 > 代码库 > 几年前做家教写的C教程(之三专讲了递归和斐波那契)

几年前做家教写的C教程(之三专讲了递归和斐波那契)

C语言学习宝典(3)

数组:

一维数组的定义: 类型说明符  数组名[常量表达式]

例如: int  a[10];

说明:(1)数组名的命名规则和变量名相同,遵循标示符命名规则

(2)在定义数组时需要指定数组个数,即数组长度

(3)变量表达式中可以包括常量和符号常量,不能包含变量。

一维数组的应用:  数组名[下标]

一维数组的初始化:(1)在定义数组时对数组元素赋予初值

Int a[10]={0,1,2,3,4,5,6,7,8,9}

(2)可以只给一部分元素赋值

Int a[10]={0,1,2,3,4}

(3)对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度

Int a[]={1,2,3,4}

函数:

函数定义的一般格式:类型标示符 函数名() { 声明部分语句}

函数参数:在定义函数时,函数名后面括号中的变量名称为”形式参数”,在主调函数中调用一个函数时,函数名后面括号中的参数称为”实际参数”

函数调用:要首先声明,要合乎函数的规范

 

例1 有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到3个月后又生一对兔子,假设所有兔子不死,问每个月的兔子总数为多少?(Fibonacci问题)

/*****************************功能:求Fibonacci数*******************************/#include <stdio.h>void main(){         long int f1,f2;         int i;         f1=1;f2=1;         for(i=0;i<=20;i++)         {                   printf("%12ld  %12ld",f1,f2);                   if(i%2==0)                            printf("\n");                   f1=f1+f2;                   f2=f2+f1;         }}

 

例2 利用数组解决Fibonacci问题

/************************************  功能:利用数组解决Fibonacci问题***********************************/#include <stdio.hvoid main(){         int i;         long int f[40]={1,1};         for(i=2;i<=40;i++)         {                   f[i]=f[i-2]+f[i-1];         }         for(i=0;i<40;i++)         {                   if(i%4==0)                            printf("\n");                   printf("%12ld",f[i]);         }         printf("\n");}

 

例2 利用递归函数解决Fibonacci问题

/********************  功能:利用递归函数调用解决Fibonacci问题********************/#include <stdio.h>void main(){         long int Fibonacci(int i);         long int f;         int i;         for(i=1;i<40;i++)         {                   f=Fibonacci(i);                   if(i%4==0)                            printf("\n");                   printf("%ld  ",f);         }}long int Fibonacci(int i){         long int f;         if(i==1||i==2)                   f=1;         else                   f=Fibonacci(i-2)+Fibonacci(i-1);         return f;}