20150602函数

来源:互联网 发布:淘宝怎么看宝贝权重 编辑:程序博客网 时间:2024/04/30 13:56

Calculator.h文件

//

//  Calculator.h

//  IOS150602

//

//  Created byPeng Junlong on 15/6/2.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


#ifndef __IOS150602__Calculator__   //判断是否定义Calculator头文件

#define __IOS150602__Calculator__   //定义头文件


#include <stdio.h>


//宏定义

#define PI 3.14

#define LEN 33


//数据类型的定义

typedef unsigned int uint_32;

typedef unsigned long uint_64;


typedef struct{

    char name[20];

    int age;

}student;


//声明全局变量

extern int numb;


//声明函数

extern int add(int a, int b); //extern在声明函数的时候是可以省略的

int sub(int a, int b);

int divl(int a, int b);


//求阶乘

int factorial(int n);

int fabnaci(int n);

int greatestComDiv(int a,int b);

int funQuestion(int n);


#endif /* defined(__IOS150602__Calculator__) 头文件定义结束*/



Calculator.c文件:

//

//  Calculator.c

//  IOS150602

//

//  Created by qianfeng on 15/6/2.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//

//control+Command+上下左右键:在.h文件和.c文件之间切换


#include "Calculator.h"


int numb = 100;


int add(int a, int b){

    int sum = a+b;

    return sum;

}


int sub(int a , int b)

{

    return a-b;

}


int divl(int a, int b)

{

    return a/b;

}


int factorial(int n)

{

    if (n == 0 || n == 1)

    {

        return 1;

    }

    printf("addres = %p\n",&n);

    return n*factorial(n-1);

}


//求斐波那契数

int fabnaci(int n)

{

    if (n == 1 || n==2) {

        return 1;

    }

    return fabnaci(n-1)+fabnaci(n-2);

}


//最大公约数

int greatestComDiv(int a,int b)

{

    if (a % b == 0) {

        return b;

    }

    return greatestComDiv(b,a%b);

}


int funQuestion(int n)

{

    if (n == 1) {

        return 10;

    }

    return funQuestion(n-1)+2;

}


main.c文件:

//

//  main.c

//  IOS150602

//

//  Created by qianfeng on 15/6/2.

//  Copyright (c) 2015 Peng Junlong. All rights reserved.

//


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

//*                    *

//*       函数          *

//*                    *

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


//函数:实现特定功能的代码块

//函数定义:函数返回值类型+函数名(参数列表)    -->函数名是一个指针,指向函数的地址

#include <stdio.h>  //<>包含系统头文件

#include "Calculator.h" //包含自定义文件

extern int score;

//函数传递时按值传递

//函数的返回值就是函数的运行结果

//int add(int a,int b)    //a,b是形参,a=10,b=44

//{

//    int sum = a+b;

//    return sum;

//}

//

//int main(int argc, const char * argv[]) {

//    int sum = add(10,44);//1044是实参

//    printf("sum = %d\n",sum);

//    return 0;

//}



//局部变量:定义在函数体内的变量

//作用域:从定义的位置开始到所在的大括号结束

//生命周期:从定义的位置开始到所在的大括号结束

//形参:类似局部变量



//全局变量:定义在函数体外的变量

//全局变量在程序编译的时候占用的内存空间就被确定

//被定义在内存的.data(数据段)

//生命周期是整个源程序

//作用域:从定义的位置开始到所在的文件结束


int score = 99;

//void printNum(void)

//{

//    int num = 111;

//    printf("num = %d\n",num);

//}

//int main(int arg ,const char *argv[])

//{

//    printNum();

//    add(11, 32);

//    printf("%d\n",add(11, 32));

//    return 0;

//}


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

//*                    *

//*     函数递归        *

//*                    *

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


//函数递归调用:一个函数直接或则间接的调用它自己,称为这个函数是递归定义的。

//1.递归前进段

//2.递归边界

//3.递归后退段

//缺点:占用内存空间大,执行效率低


int factorial(int n);

int main(int argc, const char * argv[]) {

    int volum;

    volum = factorial(4);

    printf("Volum = %d\n",volum);

    

    //打印斐波那契数

    for(int i=1;i<=10;i++)

    {

        printf("%d\n",fabnaci(i));

    }

    

    //最大公约数

    printf("greatest common divisor=%d\n",greatestComDiv(36,20));

    

    //n个人的年龄,依次比前一个大两岁,第一个人10

    printf("Age=%d\n",funQuestion(5));

    

    //求4阶乘

    int volum;

    volum = factorial(4);

    printf("Volum = %d\n",volum);

    return 0;

}


int factorial(int n)

{

    if (n == 0 || n == 1)

    {

        return 1;

    }

    return n*factorial(n-1);

}


0 0
原创粉丝点击