其他分享
首页 > 其他分享> > 函数续集---递归

函数续集---递归

作者:互联网

函数续集---递归

1、函数作为表达式调用

#include <stdio.h>

int Add(int x, int y)
{
    return x+y;
}
int main(){
    int sum;
    sum=Add(100,200);//函数作为表达式调用
    printf("%d\n",sum);
    
}

2、函数作为语句调用

#include <stdio.h>​
int Add()
{    
    printf("老龙很帅!!!")
}
int main()
{      
    printf("%d\n",Add());   
}

3、函数作为实参使用

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 int _Myrand()
 {
     srand((unsigned int)time(NULL));
     return rand%5;//0-4之间的随机数;
 }

int main()
{
    int arr[5]={10,20,30,40,50};
    printf("%d\n",arr[_Myrand()]);
    
}

4、函数之间的嵌套调用

#include <stdio.h>
void func1(int data)
{    
    printf("data=%d\n",data);
}
void func2(int data)
{
    func1(data-1);
    printf("data=%d\n",data);
}
int main()
{      
    func2(10);  
    return 0;
}

5、递归调用

函数的递归:函数可以调用自己

特点:一定有一个终止条件

#include <stdio.h>
int func(int data)
{    
    if(data==1)
    {
        return 1;
    }
    else
    {
        return data+func(data-1);
    }
}

int main()
{      
    func();  
    return 0;
}

6、兔子数列

#include "stdafx.h"
#include <stdio.h>
int f(int n)
{
	if (n == 1 || n == 2)
	{
		return 1;
	}
	else
	{
		return  f(n - 1) + f(n - 2);
	}
}

int main() {

	printf("%d\n", f(11));
	while (1);
	return 0;
}

7、汉诺塔程序

#include "stdafx.h"
#include <stdio.h>

void hnt(int n, char a, char b, char c)
{
	if (n == 1)
		printf("%c--->%c\n", a, c);
	else
	{
		hnt(n - 1, a, c, b);
		printf("%d:%c--->%c\n", n,a, c);
		hnt(n - 1, b, a, c);
	}
}

int main() {

	hnt(7, 'a', 'b', 'c');
	return 0;
}

标签:main,续集,return,递归,int,---,printf,include,data
来源: https://www.cnblogs.com/ruf666/p/13819951.html