• 第9章 函数


    1.函数

    典型的ANSI  C函数定义形式:

      返回类型  名称 (形参声明列表)

      函数体

    使用一个函数应该以下三个:

    函数原型:例 int strbar(char   a);  后面应该加上“  ; ”

    函数调用:

    函数定义:

    传递值:如果要修改主调函数的值,应该使用指针。

    返回值类型:如果返回值类型和声明的返回值类型不符,将会被转化

    2.递归

    定义:函数自己调用自己的调用过程。

    用途:

    求阶乘:

    long rfact(int n)
    {
    long ans;
    if(n==0)
    ans=1;
    else
    ans=n*rfact(n-1);
    return ans;
    }

     用二进制表示十进制整数

    void rfact(int n)
    {
        int a;
        a=n%2;
        if(n>=2)
            rfact(n/2);
        printf("%d",a);
        return ;
    } 

     3.指针

    查找地址:&运算符。

    间接运算符:*  。

    声明指针:

    cahr  * pi  //指向char类型变量的指针

    int  *pc  //指向int类型变量的指针

    float  *p  //指向flaot类型的指针

    指针是一种新的数据类型。

    普通变量把  值  作为基本量,而将地址作为通过&运算符获得的派生量

    指针变量把  地址  作为基本量,而将值作为通过*获得的派生量。

    4.编程练习

    5.p276页

    #include<stdio.h>
    #include<stdbool.h>
    void larger(double *n,double *m);//输入两个数,将大值重新赋值给输入
    int main (void)
    {
        double n,m;
        while (1)
        {
        scanf("%lf%lf",&n,&m);
        larger(&n,&m);
        printf("n=%lf,m=%lf
    ",n,m);
        }
        getchar();
        getchar();
        return 0;
    }
    
    void larger(double *n,double *m)
    {
        if (*n>*m)
        {
            *m=*n;
        }
        else
        {
            *n=*m;
        }
        printf("n=%lf,m=%lf
    ",*n,*m);
        return ;
    }

    8.

    #include<stdio.h>
    #include<math.h>
    double powers(double n,int m);
    int main (void)
    {
        double n;
        int m;
        scanf("%lf%d",&n,&m);
        printf("%.2lf",powers(n,m));
        getchar();
        getchar();
        return 0;
    }
    
    double powers(double n,int m)
    {
        double j=1;
        if (m>0)
        {
            for (int i = 0; i <m; i++)
            {
                j=n*j;          
            }
        }
        else if(m<0)
        {
            j=1.0/(powers(n,-m));
        }
        else
        j=0;  
        return j;
    } 

    9.

    #include<stdio.h>
    int Fibonacci(int m);
    int Fibonacci_1(int m);
    int main (void)
    {
        int m;
        while (1)
        {
            scanf("%d",&m);
           // Fibonacci(m);
           Fibonacci_1(m);
           printf("第%d个fibonacci是%d
    ",m,Fibonacci_1(m));
        }
        getchar();
        getchar();
        return 0;
    }
    int Fibonacci(int m)
    {
        int f1=1,f2=1,num=0;
        if (m<3)
        {
            num=1;
        }
        else
        {
            for (int i = 2; i < m; i++)
            {
                num=f1+f2;
                int tmp=f2;
                f2=f1+f2;
                f1=tmp;            
            }
        }
        return num;
    } 
    int Fibonacci_1(int m)
    {
        int f1=1,f2=1,num=0;
        if (m>2)
        {
            num=Fibonacci_1(m-1)+Fibonacci_1(m-2);
        }
        else
        {       
            num=1;
        }
        return num;
    }
  • 相关阅读:
    Watir and Selenium
    WebDriver 原理 (zhuan)
    Junit4 如何实现并发测试用例,及 Selenium Grid2 与 Junit4 结合进行并发测试。
    Excel: 如何知道 A列中的条目是否在 B 列中
    WebDriver如何工作 (zhuan)
    复习 多线程
    Way To Get Xpath From IE (forward)
    Eclipse 常用快捷键
    如何引入(调用)一个 js文件
    Wireshark 常见 filter (转)
  • 原文地址:https://www.cnblogs.com/suwencjp/p/12372930.html
Copyright © 2020-2023  润新知