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");
运行结果