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=;f2=;

         for(i=;i<=;i++)

         {

                   printf("%12ld  %12ld",f1,f2);

                   if(i%==)

                            printf("\n");

                   f1=f1+f2;

                   f2=f2+f1;

         }

}

例2 利用数组解决Fibonacci问题

/************************************

  功能:利用数组解决Fibonacci问题

***********************************/

#include <stdio.h

void main()

{

         int i;

         long int f[]={,};

         for(i=;i<;i++)

         {

                   f[i]=f[i-]+f[i-];

         }

         for(i=;i<;i++)

         {

                   if(i%==)

                            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=;i<;i++)

         {

                   f=Fibonacci(i);

                   if(i%==)

                            printf("\n");

                   printf("%ld  ",f);

         }

}

long int Fibonacci(int i)

{

         long int f;

         if(i==||i==)

                   f=;

         else

                   f=Fibonacci(i-)+Fibonacci(i-);

         return f;

}

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

  1. 几年前做家教写的C教程(之一)

    C语言学习宝典 首先让我们认识什么是C语言. C语言是一种计算机开发语言,是一种非常基础的开发语言.能够用C语言做很多事情.C语言是顺序执行的程序. 程序应该包括数据描述,数据操作. C语言的数据类型 ...

  2. 几年前做家教写的C教程(之五专讲结构体与文件操作)

    C语言学习宝典(5) 结构体: 将不同类型的数据组合成为一个有机的整体,这个整体就是一个结构体. 例如: Struct student { Int name; Char sex; Float scor ...

  3. 几年前做家教写的C教程(之四专讲了指针与汉诺塔问题)

    C语言学习宝典(4) 指针:可以有效的表示复杂的数据结构,能动态的分配动态空间,方便的使用字符串,有效的使用数组,能直接处理内存单元 不掌握指针就没有掌握C语言的精华 地址:系统为每一个变量分配一个内 ...

  4. 几年前做家教写的C教程(之二)

    C语言学习宝典(2) 认识C语言中的运算符: (1)算术运算符   (+  -  *  /  %) (2)关系运算符    (>  <  ==  >=  <=  != ) (3 ...

  5. Java-Runoob-高级教程-实例-方法:04. Java 实例 – 斐波那契数列

    ylbtech-Java-Runoob-高级教程-实例-方法:04. Java 实例 – 斐波那契数列 1.返回顶部 1. Java 实例 - 斐波那契数列  Java 实例 斐波那契数列指的是这样一 ...

  6. php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习)

    php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习) 一.总结 1.递归不优化的话,30层开外就有点吃力了 2.php因为定义变量的时候不用定义变量类型,所以数组里面的类型也是p ...

  7. js写出斐波那契数列

    斐波那契数列:1.1.2.3.5.8.13.21.34.…… 函数: 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1. for循环: 从底层向上运 ...

  8. D - 1sting(相当于斐波那契数列,用大数写)

    Description You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ...

  9. 在sqlserver中做fibonacci(斐波那契)规律运算

    --利用sqlserver来运算斐波那契规律 --利用事物与存储过程 declare @number intdeclare @A intdeclare @B intdeclare @C int set ...

随机推荐

  1. AutoHotkey之自问自答

    偶然的机会,接触到了AutoHotkey这个东西,觉得不错,便花时间了解了一下.以此来记录我在学习AutoHotkey时遇到的各种问题,以及我对其的解释(有可能不专业甚至出错). Time:2015- ...

  2. 使用PopupWindow

    PopupWindow可以用来实现弹出任意位置的菜单,比Context Menu和Option Menu灵活性更高.Android中弹出一个PopupWindow基本有两个方法: 1 2 //Disp ...

  3. Android Service1

    一.Service的种类 按运行地点分类: 类别 区别  优点 缺点   应用 本地服务(Local) 该服务依附在主进程上,  服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外L ...

  4. POJ 1068

    http://poj.org/problem?id=1068 这道题是一道模拟的题目 题目大意呢,p代表前面的'('的个数,而w代表这个括号所包括的括号的个数: 给你p,要你求w: 解题思路: 首先, ...

  5. Shell 读取文本内容

    在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. ...

  6. Unity全屏模糊

    先上效果,左边模糊 其实用的是Unity Stard Effect里的资源,一个脚本一个shader //脚本代码 using UnityEngine; using System.Collection ...

  7. Unity3d 鼠标拣选小功能集合

    最近在做一些优化工具,把鼠标拣选的功能单独抽出来. 可遍历所有选中的某类型资源,会递归文件夹 可编译所有prefab的某个Component,也是递归的 using UnityEngine; usin ...

  8. ios 在storyboard 和 xib中,显示自定义view的预览效果

    发现FSCalendar这个控件能在xib中显示预览效果,是怎么实现的呢?其中涉及的知识又有哪些? 主要就是IBInspectable 和 IB_DESIGNABLE 先看 IBInspectable ...

  9. FastReport经验

    FastReport经验 1.FastReport中如果访问报表中的对象? 可以使用FindObject方法. TfrxMemoView(frxReport1.FindObject(’memo1′)) ...

  10. Java for LeetCode 206 Reverse Linked List

    Reverse a singly linked list. 解题思路: 用Stack实现,JAVA实现如下: public ListNode reverseList(ListNode head) { ...