C语言中的自定义函数

C语言中可以使用系统函数也可以使用自己的函数,就是自定义函数

自定义函数分为四种

第一种:无参无返回值的 

函数的声明

void sayH();

函数的实现

void sayH(){
  
  printf("你好");
}

第二种:有参数无返回值

函数的声明:

void pxsbx(int c,int k);

函数的实现:

void pxsbxx(int c,int k){
    int i,j;
    for (i=0; i<c; i++) {
        for (j=0; j<=i; j++) {
            printf(" ");
        }
        for (j=0; j<k; j++) {
            if (j==0||j==k-1||i==0||i==c-1) {
                printf("*");
            }else{
                  printf(" ");
            }
      
        }
        printf("
");
    }


}

函数的调用

 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
",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==1||num==0) {
        return 1;
    }else {
        return num*MyFun(num-1);
    
    }
}

调用

 printf("sum=%d ",MyFun(6));

运行效果

2,菲波那切数列数列

函数的声明

int fbsnq(int num);

函数的实现

int fbsnq(int num){
   // 递归
    if(num==1||num==2){
        return 1;
    }
    return fbsnq(num-1)+fbsnq(num-2);
    //普通
//    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=1; i<=30; i++) {
        if ((i-1)%5==0) {
            printf("
");
        }
            printf("%10d",  fbsnq(i));
    }

    printf("

");
  

运行结果

原文地址:https://www.cnblogs.com/qianLL/p/5089892.html