C语言基础教程(五)函数(7)

2.3 函数的递归调用
Turbo C2.0允许函数自己调用自己,即函数的递归调用,递归调用可以使程序简洁、代码紧凑,但要牺牲内存空间作处理时的堆栈。
如要求一个n!(n的阶乘)的值可用下面递归调用:
例8:
#include<stdio.h>
unsigned ling mul(int n);
int main()
{
int m;
puts("Calculate n! n=?\n");
scanf("%d", &m); /*键盘输入数据*/
printf("%d!=%ld\n", m, mul(m));/*调用子程序计算并输出*/
getch();
retun 0;
}
unsigned long mul(int n)
{
unsigned long p;
if(n>1)
p=n*mul(n-1); /*递归调用计算n!*/
else
p=1L;
return(p); /*返回结果*/
}
运行结果:
calculate n! n=?
输入5时结果为:
5!=120

时间: 2024-11-08 22:14:46

C语言基础教程(五)函数(7)的相关文章

C 语言基础教程(我的C之旅开始了)[八]_C 语言

19. 基本数据类型:复数类型和虚数类型 C99 新增了复数类型(_Complex)和虚数类型(_Imaginary).简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long double _Complex.对于 float _Complex 类型的变量来说,它包含两个 float 类型的值,一个用于表示复数的实部(real part),另一个用于表示虚部(imaginary part).类似地,double _Complex 包含两个

易语言基础教程之制作简易浏览器_易语言

方法/步骤 首先打开易语言: 点击--工具--支持库配置--全选--确认 之后点击属性--拉宽 之后点击标题输入测试浏览器 拉一个编辑框和按钮最后一个超文本浏览框(自己找) 之后双击按钮输入代码: .版本 2 .支持库 HtmlView .子程序 _按钮1_被单击 超文本浏览框1.地址 = 编辑框1.内容 按F5测试,好的行了 注意事项 编辑框要输入网址,不能输入其他的OK. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜

C++基础教程(五)——指针(2)

//===================================================== // Name : Pointer1.cpp // Author : lf // Version : <C++语言基础教程> 吕凤翥 P38--P43 2.5.2 // Description : 指针和数组 // Tips : // 在C++中,数组的元素可以用下标表示,也可以用指针表示. // 但是最好是用指针表示,因为指针表示要比下标表示处理起来要快. // 所以在C++中尽量

零基础易语言入门教程(五)之逻辑型数据类型_易语言

在上篇文章给大家介绍了零基础易语言入门教程(四)之数据类型,上篇针对数值到文本类型知识,今天给大家介绍下逻辑型数据. 具体方法和步骤如下所示: 1.逻辑型数据非真即假: 首先申请一个局部变量(A)类型为:逻辑型,编写代码为:A=1>2,那么输出的结果应为假,因等于1是赋值与1,然后代码中写道1大于2,所以这是假的,见下图所示: 2.关系运算符: 在上图大家需注意的是,A后面的等于号是赋值符号,而后面的≥,≠,<一些符号则是关系运算符. 关系运算符不是非要设置变量给其赋值才可以使用的,同样他可以

FrontPage 2003基础教程(五) 编辑方式

在窗口左下角有四个选项卡:设计.拆分.代码.浏览 查看全套FrontPage 2003基础教程

C语言基础教程(五)函数(1)

C程序是由一组或是变量或是函数的外部对象组成的.函数是一个自我包含的完成一定相关功能的执行代码段.我们可以把函数看成一个"黑盒子",你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的的,外部程序是不知道的.外部程序所知道的仅限于输入给函数什么以及函数输出什么.函数提供了编制程序的手段,使之容易读.写.理解.排除错误.修改和维护. C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数

C语言基础教程(五)函数(2)

1.函数的说明与定义Turbo C2.0中所有函数与变量一样在使用之前必须说明.所谓说明是指说明函数是什么类型的函数,一般库函数的说明都包含在相应的头文件<*.h>中,例如标准输入输出函数包含在stdio.h中,非标准输入输出函数包含在io.h中,以后在使用库函数时必须先知道该函数包含在什么样的头文件中,在程序的开头用#include <*.h>或#include"*.h"说明.只有这样程序在编译,连接时Turbo C才知道它是提供的库函数,否则,将认为是用户自

C语言基础教程(五)函数(8)

3.函数作用范围 Turbo C2.0中每个函数都是独立的代码块,函数代码归该函数所有,除了对函数的调用以外,其它任何函数中的任何语句都不能访问它.例如使用跳转语句goto就不能从一个函数跳进其它函数内部.除非使用全程变量,否则一个函数内部定义的程序代码和数据,不会与另一个函数内的程序代码和数据相互影响.Turbo C2.0中所有函数的作用域都处于同一嵌套程度,即不能在一个函数内再说明或定义另一个函数.Turbo C2.0中一个函数对其它子函数的调用是全程的,即是函数在不同的文件中,也不必附加任

C语言基础教程(五)函数(6)

三.用全程变量实现参数互传以上两种办法可以在调用函数和被调用函数间传递参数,但使用不太方便.如果将所要传递的参数定义为全程变量,可使变量在整个程序中对所有函数都可见.这样相当于在调用函数和被调用函数之间实现了参数的传递和返回.这也是实际中经常使用的方法,但定义全程变量势必长久地占用了内存.因此,全程变量的数目受到限制,特别对于较大的数组更是如此.当然对于绝大多数程序内存都是够用的.例6: #incluide<stdio.h> void disp(void); int m[10]; /*定义全程