首页 > 编程语言 >用函数实现模块化程序设计三

用函数实现模块化程序设计三

时间:2024-11-12 19:46:25浏览次数:1  
标签:return 函数 递归 int 模块化 func 程序设计 main

函数的嵌套调用

C语言的函数定义是互相平行的、独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,也就是不能嵌套定义,但是可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数

如上执行过程:

  1. 执行 main 函数
  2. 遇到函数调用的语句,调用函数 a ,流程转到 a 函数
  3. 执行 a 函数
  4. 遇到函数调用的语句,调用函数 b ,流程转到 b 函数
  5. 执行 b 函数
  6. b 函数执行完毕,返回 a 函数,继续执行 a 函数
  7. a 函数执行完毕,返回 main 函数,继续执行 main 函数
  8. main 函数执行完毕,程序结束

函数的递归调用

在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用

C语言的特点之一就在于允许函数的递归调用

代码:


//f(x) = f(x - 1) + 2

#include <stdio.h>

int func(int index)
{
	if (1 == index)//递归结束条件
		return 10;

	return func(index - 1) + 2;//开始递归
}

int main(void)
{
	printf("%d\n", func(5));

	return 0;
}

运行结果:

例:用递归法求 n!


//f(n) = f(n - 1) * n

#include <stdio.h>
#include <stdlib.h>

long long func(int n)
{
	if ((1 == n) || (0 == n))//递归结束条件
		return 1;

	return func(n - 1) * n;//开始递归
}

int main(void)
{
	int n;
	scanf("%d", &n);
	printf("%lld\n", func(n));

	system("pause");
	return 0;
}

运行结果:

标签:return,函数,递归,int,模块化,func,程序设计,main
From: https://www.cnblogs.com/EricsT/p/18542527

相关文章

  • Scratch自制积木(自定义函数)求最小公倍数
    在Scratch编程环境中,自制积木是一种用户定义的代码块,它可以将复杂的脚本简化为更易于理解和管理的部分。通过自制积木,用户可以将一系列指令封装成一个单独的积木块,从而方便地在不同的项目中重用这些指令。Scratch自制积木功能是一个强大且灵活的工具,它可以帮助用户更好地组织......
  • Java常用方法:StringUtils.isNotBlank()、StringUtils.isEmpty()、去除空格的函数、手
    Java常用方法:StringUtils.isNotBlank()、StringUtils.isEmpty()、去除空格的函数、手机号中间4位换成*、判断字符是否为数字要使用工具类StringUtils,首先得导入依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><ve......
  • 深⼊理解指针(5)[回调函数、qsort相关知识(qsort可用于各种类型变量的排序)】
     目录1.回调函数2.qsort相关知识(qsort可用于各种类型变量的排序)一   回调函数    1定义/作用:把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅......
  • STM32外设之GPIO&LED指示灯模块程序设计
    文章目录一、STM32外设之GPIO二、CT117E-M4的LED电路原理三、LED指示灯模板程序设计一、STM32外设之GPIO1.GPIO的8种工作模式:模式配置模式寄存器输出类型寄存器输出速度寄存器上/下拉寄存器输入浮空00不使用不使用00输入上拉00不使用不使用01输入下拉00不使用不使用......
  • 11.12,pythpn函数
    函数:一、什么是函数定义:函数是组织好,可重复使用,用来实现单一,或关联功能的代码段二、pycharm中的表结构项目,包(init)或目录,py文件,py文件包含多个函数或类等三、函数的有哪些优点?1、降低代码冗余2、增加代码的复用性,提高开发效率3、提高程序的拓展性4、封装:就是把代码片段放......
  • 字符串函数strcpy.strcat.strcmp的应用和模拟实现
    strcpy的应用和模拟实现strcpy详解:先来看下官网对strcmp的介绍。绿色部分括号内为需要的两个参数.第一个char*destination指的是目标字符串的起始地址;第二个consetchar*source指的是要拷贝的字符串;最前面的char*strcpy表明返回类型为字符指针.(返回......
  • excel 字符比较函数
    ‌在Excel中,用于字符比较的函数主要有以下几种‌:‌EXACT函数‌:用于比较两个文本字符串是否完全相同,包括大小写。如果两个字符串完全相同(包括大小写),则返回TRUE;否则返回FALSE。例如,=EXACT("ABC","abc")的结果为FALSE,而=EXACT("ABC","ABC")的结果为TRUE‌12。‌FIND函数‌:用......
  • 深入定制SerDes系统:通过MATLAB函数块和SerDes Toolbox中的AMI模型利用AMI参数优化数据
    深入定制SerDes系统:利用AMI参数优化数据路径控制在高速数字通信系统中,SerDes(串行/并行转换器)是最为关键的组件之一。它将大量的数据串行化,传输到另一个模块或设备,再将其还原成并行数据。随着通信标准的不断演进,诸如PCIe4、IEEE802.3等协议在数据速率、信号完整性和传输效......
  • 【精品毕设推荐】基于微信小程序的图书馆自习室座位预约小程序设计与实现
    点击下载原文及代码,可辅助在本地配置运行......
  • 在Vue组件中直接使用render函数 - jsx
    在Vue组件中直接使用render函数-jsxcreateElement函数很重要,是json转组件的重点exportdefault{name:'MyComponent',render(h){return<div>Hello,JSX!</div>;}}refvue如何支持jsxhttps://worktile.com/kb/p/3614689createElement函数很重要,是json......