C算法--函数

Posted catherinezhilin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C算法--函数相关的知识,希望对你有一定的参考价值。

技术图片
 1 #include <stdio.h>
 2 
 3 int max_2(int a,int b)
 4     if(a>b) return a;
 5     else return b;
 6 
 7 
 8 /*在max_3中调用max_2比较大小*/
 9 int max_3(int a,int b,int c)
10     int temp=max_2(a,b);
11     temp=max_2(temp,c);
12     return temp;
13 
14 
15 int main()
16     int a,b,c;
17     scanf("%d%d%d",&a,&b,&c);
18     printf("%d\n",max_3(a,b,c));
19     return 0;
20 
嵌套调用
技术图片
 1 #include <stdio.h>
 2 
 3 int max_2(int a,int b)
 4     if(a>b) return a;
 5     else return b;
 6 
 7 
 8 /*在max_3中调用max_2比较大小*/
 9 int max_3(int a,int b,int c)
10     int temp=max_2(a,b);
11     temp=max_2(temp,c);
12     return temp;
13 
14 
15 int main()
16     int a,b,c;
17     scanf("%d%d%d",&a,&b,&c);
18     printf("%d\n",max_3(a,b,c));
19     return 0;
20 
嵌套调用

 

技术图片
 1 #include <stdio.h>
 2 
 3 void print1()
 4     printf("HAHA,\n");
 5     printf("goodidea,\n");
 6 
 7 
 8 void print2()
 9     printf("oho,\n");
10     printf("badidea!");
11 
12 
13 int main()
14     print1();
15     print2();
16     return 0;
17 
基本语法格式

返回类型时void 自定义函数只是单纯实现一些语句不返回变量

技术图片
 1 #include <stdio.h>
 2 
 3 
 4 /*judge函数为有参函数 返回类型int型return后面的数据类型要和一开始给出的返回类型相同*/
 5 int judge(int x)
 6     if(x>0)return 1;
 7     else if(x==0) return 0;
 8     else return -1;
 9 
10 int main()
11     int a,ans;
12     scanf("%d",&a);
13     ans=judge(a);
14     printf("%d\n",ans);
15     return 0;
16 
有参函数
技术图片
 1 #include <stdio.h>
 2 
 3 
 4 int x;
 5 void change()
 6     x=x+1;
 7  
 8 int main()
 9     x=10;
10     change();
11     printf("%d\n",x);
12     return 0;
13 
全局变量
技术图片
 1 #include <stdio.h>
 2 
 3 void change (int x)
 4     x=x+1;
 5 
 6 
 7 /*下面change() 函数的参数X和main函数的a其实作用于两个不同函数的不同变量。这种传递参数的方法称为值传递*/
 8 /*函数定义的小括号参数成为形式参数,实际调用的成为实参*/ 
 9 int main()
10     int a=10;
11     change(a);
12     printf("%d\n",a);
13     return 0;
14     
15 
局部变量实参/形参
技术图片
 1 #include <stdio.h>
 2 
 3 int MAX(int a,int b, int c)
 4     int M;
 5     if(a>=b&&a>=c)M=a;
 6     else if(b>=a&&b>=c)M=b;
 7     else M=c;
 8     return M; 
 9  
10 
11 int main()
12     int a,b,c;
13     scanf("%d%d%d",&a,&b,&c);
14     printf("%d\n",MAX(a,b,c));
15     return 0;
16 
多个参数逗号隔开

 

在main函数中 return0的意义在于告知系统程序正常终止。

技术图片
 1 #include <stdio.h>
 2 
 3 void change(int a[],int b[][5])
 4     a[0]=1;
 5     a[1]=3;
 6     a[2]=5;
 7     b[0][0]=1;
 8 
 9 
10 int main()
11     int a[3]=0;
12     int b[5][5]=0;
13     change (a,b);
14     int i;
15     for(i=0;i<3;i++)
16         printf("%d\n",a[i]);
17     
18     return 0;
19 
将数组作为参数传入返回数组

 

技术图片
 1 #include <stdio.h>
 2 
 3 int max_2(int a,int b)
 4     if(a>b) return a;
 5     else return b;
 6 
 7 
 8 /*在max_3中调用max_2比较大小*/
 9 int max_3(int a,int b,int c)
10     int temp=max_2(a,b);
11     temp=max_2(temp,c);
12     return temp;
13 
14 
15 int main()
16     int a,b,c;
17     scanf("%d%d%d",&a,&b,&c);
18     printf("%d\n",max_3(a,b,c));
19     return 0;
20 
函数的嵌套调用
技术图片
 1 #include <stdio.h>
 2 
 3 /*函数的递归调用*/
 4 int F(int n)
 5     if(n==0) return 1;
 6     else return F(n-1)*n;
 7  
 8 
 9 int main()
10     int n;
11     scanf("%d",&n);
12     printf("%d\n",F(n));
13     return 0;
14 
递归调用求阶乘

 

以上是关于C算法--函数的主要内容,如果未能解决你的问题,请参考以下文章

经典C语言面试算法题

c/c++刷算法题时常用的函数手册 持续更新--

PSO粒子群算法(鸟群算法)计算二元函数极值(C语言实现matlab工具箱实现)

C语言——递归算法

用C语言编写函数,要实现快速排序算法或者冒泡法

C算法--函数