C语言中可以使用系统函数也可以使用自己的函数,就是自定义函数
自定义函数分为四种
第一种:无参无返回值的
函数的声明
void sayH();
函数的实现
void sayH(){ printf("你好");
}
第二种:有参数无返回值
函数的声明:
void pxsbx(int c,int k);
函数的实现:
void pxsbxx(int c,int k){
int i,j;
for (i=; i<c; i++) {
for (j=; j<=i; j++) {
printf(" ");
}
for (j=; j<k; j++) {
if (j==||j==k-||i==||i==c-) {
printf("*");
}else{
printf(" ");
} }
printf("\n");
} }
函数的调用
int c,k;
printf("请输入长:");
scanf("%d",&c);
printf("请输入宽:");
scanf("%d",&k);
pxsbxx(c, k);
运行结果
3,有参数有返回值
声明:
int add1(int num1,int num2,int num3);
实现
int add1(int num1,int num2,int num3){
int sum=num1+num2+num3;
return sum; }
调用
int num1,num2,num3,sum;
scanf("%d%d%d",&num1,&num2,&num3);
sum=add1(num1, num2,num3);
printf("%d",sum);
效果
第四种:有参数无返回值
声明
void add(int num1,int num2);
实现
void add(int num1,int num2)
{ int sum=num1+num2;
printf("%d\n",sum);
}
二,递归函数(两个简易的递归调用)
1,阶乘
函数的声明
int MyFun(int num);
函数的实现
int MyFun(int num){
// 普通函数
// int sum1=1;
// for (int i=1; i<=num; i++) {
// sum1*=i;
// }
// return sum1;
// 递归调用
if (num==||num==) {
return ;
}else {
return num*MyFun(num-); }
}
调用
printf("sum=%d\n",MyFun(6));
运行效果
2,菲波那切数列数列
函数的声明
int fbsnq(int num);
函数的实现
int fbsnq(int num){
// 递归
if(num==||num==){
return ;
}
return fbsnq(num-)+fbsnq(num-);
//普通
// int n1=1,n2=1,temp=0;
// if (num==1||num==2) {
// return 1;
// }
// int i=2;
// for(;i<num;i++){
// temp=n1+n2;
// n1=n2;
// n2=temp;
// }
// return temp;
}
函数的调用
for (int i=; i<=; i++) {
if ((i-)%==) {
printf("\n");
}
printf("%10d", fbsnq(i));
} printf("\n\n");
运行结果