重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
C語言中一個完整的函數由函數首部和函數體構成,而且定義函數時兩者都是必不可少的。
創新互聯是一家專業提供興海企業網站建設,專注與網站設計制作、做網站、html5、小程序制作等業務。10年已為興海眾多企業、政府機構等服務。創新互聯專業的建站公司優惠進行中。
函數定義的一般形式如下:
類型標識符
函數名(形參表列)
//
這是函數首部
//
以下{
}內的是函數體
{
說明部分
執行部分
}
舉例說明如下:
// 定義一個不帶返回值的函數
// 函數功能:輸出形參的值
void fun(int a, int b)
{
printf("%d, %d\n", a, b);
}
// 定義一個帶返回值的函數
// 函數功能:返回2個整數數的最大值
int fun(int a, int b)
{
return ab ? a : b;
}
1、編寫函數func1,實現求兩個數的最大公約數。
1:
int
fuc1(int
a,int
b)
{
if(a%b==0)
return
b;
return
fuc(b,a%b);
}
int
t=fuc1(a,b);//t為a,b最大公約數。
2、編寫函數func2,實現求兩個自然數之間的奇數的和。
2
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==1)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t為a,b間所有奇數之和。
3、編寫函數func1,實現求一個自然數的階乘(要求用遞歸的方法)。
int
fuc1(int
k)
{
if(k==1)
return
1;
return
k*fuc(k-1);
}
int
t=fuc1(a);//t為a的階乘.
4、編寫函數func2,實現求兩個自然數之間的偶數的和。
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==0)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t為a,b間所有偶數之和。
(1)素數判斷函數:是返回1,否則返回0
int?prime(int?n){
int?i;
if(n2??!(n1)?||?n2)
return?0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return?0;
return?1;
}
(2)編寫排序函數(冒泡排序、選擇排序)
void?bubbling(int?*p,int?n){//冒泡
int?i,j,k;
for(i=0;in;i++)
for(j=1;jn;j++)
if(p[j]p[j-1])
k=p[j],p[j]=p[j-1],p[j-1]=k;
}
void?select(int?*p,int?n){//選擇
int?i,j,k;
for(n--,i=0;in;i++){
for(k=i,j=k+1;j=n;j++)
if(p[k]p[j])
k=j;
if(k-i)
j=p[k],p[k]=p[i],p[i]=j;
}
}
(3)查找函數,找到返回下標,否則返回-1
int?find(int?*p,int?n,int?x){//順序
int?i;
for(i=0;in;i++)
if(p[i]==x)
return?i;
return?-1;
}
int?fihalf(int?*p,int?n,int?x){//折半,升序為例
int?l,r,m;
l=0,r=n-1;
while(m=(l+r)1,lr??p[m]-x)
p[m]x???l=m+1?:?r=m-1;
return?p[m]==x???m?:?-1;
}
(4)插入函數,升序為例