程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中的自定義函數,C語言自定義函數

C語言中的自定義函數,C語言自定義函數

編輯:關於C語言

C語言中的自定義函數,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("\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==1||num==0) {
        return 1;
    }else {
        return num*MyFun(num-1);
    
    }
}

調用

 printf("sum=%d\n",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("\n");
        }
            printf("%10d",  fbsnq(i));
    }

    printf("\n\n");
  

運行結果

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved