新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联公司客户idc服务中心,提供成都移动服务器托管、成都服务器、成都主机托管、成都双线服务器等业务的一站式服务。通过各地的服务中心,我们向成都用户提供优质廉价的产品以及开放、透明、稳定、高性价比的服务,资深网络工程师在机房提供7*24小时标准级技术保障。
//在使用前要先对函数进行声明
long fac(int);
int main(void)
{
int n;
long ff;
scanf("%d",n);
ff = fac(n);
printf("%d!=%d\n",n,ff);
return 0;
}
//这里就是fac()
long fac(int x)
{
long f;
if(x == 0 || x== 1)
f = 1;
else
//这里又调用了fac()自己,叫做递归调用
//每次调用时都是将x-1赋给下一个fac()
f = fac(x-1) * x;
//return会把值返回到调用它的函数中去
return f;
}
//主要是要理解这个递归的过程
//假设输入的是3,过程是这样的:
一般用fac表示阶乘函数,这个不在库函数里面,需要自己定义:
#includestdio.h
int fac(int n)
{
if(n==1 || n==0)
{
return 1;
}
else
{
return n*fac(n-1);
}
}
void main()
{
int a,b;
printf("fac(0)=%d\n",fac(1));
printf("fac(2)=%d\n",fac(2));
printf("fac(3)=%d\n",fac(3));
return;
}
#includestdio.h
int fac(int x)
{
if(x==1) return 1;
else return fac(x-1)*x;
}
int main()
{
int n;
scanf("%d",n);
printf("%d\n",fac(n));
return 0;
}
fac 是指一个返回类型为double型的函数,它需要一个整形参数(看你程序里fac的定义)。这里在main()函数里的fac(i)是对这个函数的调用,即:赋给它所需的一个整形变量i作为其参数,使之用来进行fac内部的运算。
要注意的的是,fac定义时内部的i是它内部的参数(局部的变量),它的作用范围仅限在fac内部。而现在在main()中,我们赋给fac()一个名为i的整型量,它只会将它的值给fac中的n来参与fac的运算。
其实n只是一个形式上的参数它的作用范围也仅限在fac中,但是既然把它放在fac(int n)里就赋予它一个使命将main()中给fac()的参数传入fac()中,从而完成fac()的调用。
#includestdio.h
#includemath.h
double
fac(int
n)
{
if(n==1)return
1;
else
return
fac(n-1)*n;
}
int
main()
{
int
n;
scanf("%d",n);
printf("%d!=%.0lf\n",n,fac(n));
//因为20!已经超出了int的最大值,故用double型,输出的时候输出整数位
return
0;
}
因为函数的英文是function,所以教材中自定义函数的名称一般用f,fun,func。只是一个名称,为了便于记忆而已。
func应该代表的是function这个英文单词,不过它并不是语法关键字,没有任何特殊的含义,只是在有些C语言的练习题程序中会作为自定义函数的命名,但实际编程时不推荐这样命名,这样的命名可读性太差(因为它不能够说明函数是干什么的),而且还容易造成命名冲突。
扩展资料:
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
参考资料来源:百度百科-c语言