C语言:函数的嵌套与递归

C/C++
211
0
0
2022-11-30

函数的嵌套

在C语言中,所有函数都是相互平行,且相互独立的。在定义函数时,一个函数内不能再定义另一个函数,不能嵌套定义,但是可以嵌套使用。

例:编写一个求四个整数中最小值的函数,并在主函数进行调用。

#include<stdio.h>
int main(){
    int min4(int a,int b,int c,int d);
    int a=3,b=4,c=1,d=6;
    printf("min=%d",min4(a,b,c,d));
    return 0;
} 
int min4(int a,int b,int c,int d){
    int min(int a,int b);
    int m=a;
    m=min(m,b);
    m=min(m,c);
    m=min(m,d);
    return m;
}
int min(int a,int b){
    return a>b?b:a;
}

函数的递归--->循环

在函数的调用过程中,出现一个函数调用自己本身的情况,就是在运行的过程中调用自己。

函数的递归有两个必要条件:

  1. 函数的出口,不能无限制地调用本身,须有个出口,化简为非递归状况处理。
  2. 递推公式。(偷懒)

递归的理解方法:

img

例如:求1+2+3+4+...+100

#include<stdio.h>
int main(){
    int sum(int n);
    printf("%d",sum(100));
    return 0;
}
int sum(int n){
    if(n==1){
        return 1;
    }else{
        return sum(n-1)+n;
    }
}

更多的关于函数递归的例题请见下一篇