自定義函數(shù)聲明void表明函數(shù)無返回值,但不決定自定義函數(shù)是否有參數(shù),這是兩回事
創(chuàng)新互聯(lián)服務(wù)項目包括凌海網(wǎng)站建設(shè)、凌海網(wǎng)站制作、凌海網(wǎng)頁制作以及凌海網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,凌海網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到凌海省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
如void fun(int a, int b) { ... ... }函數(shù)帶參數(shù),但無返回值
若聲明類型為void fun(void) { ... ... }或void fun() { ... ... }則表明函數(shù)既沒有參數(shù),也沒有返回值
若為float fun(int a, int b) { ... ... }表明函數(shù)有返回值,返回值類型為float,函數(shù)也帶參數(shù)
若為float fun(void) { ... ... }表明函數(shù)有返回值,返回值類型為float ,不帶參數(shù)
明白了嗎?
(1)素數(shù)判斷函數(shù):是返回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)編寫排序函數(shù)(冒泡排序、選擇排序)
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)查找函數(shù),找到返回下標(biāo),否則返回-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)插入函數(shù),升序為例
有些自定義函數(shù)可能會被頻繁的調(diào)用,所以寫在一個C文件里是不太方便的。應(yīng)該把這些自定義的函數(shù)寫在一個C文件里,同時在一個頭文件.h文件里聲明。主函數(shù)可以通過引用該頭文件然后調(diào)用需要的自定義函數(shù)。
舉例如下:
1. 在頭文件(.h)里聲明自定義函數(shù),定義用戶寫的函數(shù);
2. 在一個C語言文件里寫下自定義函數(shù)的實現(xiàn)方式,可以寫在主函數(shù)前,也可在主函數(shù)后(需在頭文件前聲明函數(shù));
3. 在主函數(shù)中調(diào)用自定義函數(shù),別忘了頭文件的聲明;
4. 最后編譯所有的涉及到的C文件;
#include stdio.h
void number(int);
int main()
{
for(int i = 0;i10;i++)
{
number(i);
int
getdata(int
a,int
b)//括號是形式參數(shù),前面int
是函數(shù)返回值類型
{
...
return
a;//返回值
}
...是實現(xiàn)的代碼。
自己看看書上的函數(shù)定義和實現(xiàn)形式很容易的。