1,在编程的世界里,函数就是一段代码的模块,把相应的代码包容起来共同去完成一个项目的一个功能性模块。
函数作为C语言C中基本的模块:
*每个程序只有一个主模块(主函数)
*可以有多个其他的函数(子函数)
*函数可以更好的组合代码
2,定义一个函数:语法如下:
返回值类型 函数名(形参列表)
{
//函数体
}
return_type function_name(formal paramet list)
{
/*Local Definitions*/
/*Statements*/
/*function_name*/
}
使用函数名的三个地方:
*函数声明(函数原型)。只写函数头,不写函数体,不实现函数功能,后面有分号。
*函数调用。由函数表达式和分号组成的一条执行语句。
*函数定义(函数实现)。包括函数头&函数体,具体的功能实现。
下面进行一个函数递归和嵌套:
嵌套:输入四个数找最大值.
#include <stdio.h>
int max2(int a,int b){
return a>b?a:b;
}
int* max4(int *a,int *b,int *c,int *d )
{
int max;
max=max2(*a, *b );
max=max2(max, *c);
max=max2(max, *d);
return &max;
}
int main(int argc,const char * argv[]) {
int a,b,c,d;
int *p;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
p=max4(&a,&b,&c,&d);
printf("%d\n",*p);
return0;
}
接下来用递归写一个求阶乘的函数
#include <stdio.h>
void printfjc(int a)
{
int b=1;
for(a=1;a<=5;a++)
{
int h=1;
for(b=1;b<=a;b++)
{
h=h*b;
}
printf("%d\n",h);
}
}
int main()
{
int a;
scanf("%d",&a);
printfjc(a);
return 0;
}
但是不推荐使用函数递归与调用;接下来写输入一个数字,逆序输出他的每一位数字,并计算他是一个几位数;
列如输入:123456输出:6,5,4,3,2,1;6位数;
#include <stdio.h>
void zuoye(int a)
{
int sum=0;
while(a!=0)
{
printf("%d\t",a%10);
a=a/10;
sum++;
}
printf("\n%d\n",sum);
}
int main()
{
int a;
scanf("%d",&a);
zuoye(a);
return 0;
}