| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言学习笔记(13)——函数应用 -> 正文阅读 |
|
[C++知识库]C语言学习笔记(13)——函数应用 |
目录 13.1?函数的嵌套调用13.1.1?函数嵌套的概念函数嵌套是指在一个自定义函数的函数体中,又出现了另外自定义函数的调用。如函数a调用函数b,函数b又调用函数c等。 13.1.2?程序实例?已知组合数,求对于任意m、n时的值。程序如下:?
13.2?函数的递归调用递归函数是由递归定义产生的,若在定义一个函数的过程中直接或间接地调用了被定义的函数本身,那么这种定义就是递归定义,所定义的函数称为递归函数。递归函数可以使程序简洁、代码紧凑,但只有能使用递归方法描述的问题,才能使用递归函数实现。下面分两种情况对递归函数进行讨论。 13.2.1?公式递归问题?
能够使用一个递归公式描述的问题归类为公式递归问题。?公式递归基本过程分两步:①用递归公式描述问题;② 将递归公式函数化。
用递归方法求。 ①用递归公式描述问题: 若使用函数sum(n)表示累加和,则: ?②将递归公式函数化:
递归处理是由计算机自动完成的,包括两个过程: ①由高到低的递推处理,将问题规模逐步缩小,直至运算规模不能分解时为止,此时必然有一个最小规模值(n=1的情况); ②由低到高逐级回溯,从最小规模值开始,逐级求得上层数据,直到解决问题为止。 13.2.2 非公式递归问题?
有的问题不能直接用一个递归公式进行描述,但处理过程包含了递归的思路,这一类问题称为非公式递归问题(又称过程递归)。
最典型的过程递归问题——汉诺塔问题! 题目介绍:有三个柱和n个大小各不相同的盘子,开始时, 所有盘子以塔状叠放在柱A上,要求按一定规则,将柱A上的所有盘子借助于柱C移动到柱B上。移动规则为:⑴ 一次只能移动一个盘子。⑵ 任何时候不能把盘子放在比它小的盘子的上面。 实现程序如下:?
13.3?数组与函数13.3.1 数组元素作函数参数
数组元素作为函数的参数时,只传送作为实参的数组元素,此时按使用其他简单变量的方法使用数组元素(值传递)。 数组元素作函数实参调用函数时,传给形参的值是数组元素的值,函数执行时开辟独立的内存空间,与源数组的内存空间不发生关系,函数执行结果对源数组数据没有任何影响。
把一个整型数组的所有素数找出来。实现程序如下:
13.3.2 一维数组名作为函数参数
C语言中的数组名有两种含义,一是标识数组,二是代表数组的首地址,数组名的实质就是数组的首地址。因此,数组名作为函数参数与数组元素作为函数的参数有本质的区别。数组名作为函数参数时传送的是数组的开始地址,是一种传址调用。形参数组和实参数组要在各自的函数中进行等同的定义,函数调用执行时,形参数组映射到实参数组空间。?
设计一个对一维数组排序的sort()函数,并调用它实现数组排序。实现程序如下:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 12:07:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |