#include stdio.h
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都玻璃鋼坐凳小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站制作營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
void fun(int * a,int k);
void main()
{
int a[10];
printf("請輸入10個整數(shù):\n");
for(int i=0;i10;i++)
{
scanf("%d",a[i]);
}
fun(a,sizeof(a)/sizeof(a[0]));
}
void fun(int a[],int k)//這就是你想要的函數(shù)
{
int g0=0,t0=0,e0=0;/*g0就是0,t0就是小于0,e0就等0*/
for(int i=0;ik;i++)
{
if(a[i]0) g0++;
if(a[i]==0) e0++;
if(a[i]0) t0++;
}
printf("大于0的個數(shù)為:%d\n",g0);
printf("小于0的個數(shù)為:%d\n",t0);
printf("等于0的個數(shù)為:%d\n",e0);
}
/*
說明就和ichenq的差不多,只是ichenq的那個有問題,比如他的if語句里多了幾個";"號,導(dǎo)致無沒通過,另外我用他的函數(shù)來測試得不到想要的結(jié)果
sizeof(a)/sizeof(a[0])就是數(shù)組a的長度*/
main函數(shù)包含兩個參數(shù),比如代碼:
#include?stdio.h
int?main(int?argc,?char?*argv[])
{
int?i?=?0;
for?(;?i??argc;?++i)
{
printf("Arg?index:%d,value:%s\n",?i,?argv[i]);
}
return?0;
}
其中,argc表示參數(shù)的個數(shù),argv是一個指針數(shù)組,里面保存的是參數(shù)列表。
默認(rèn)情況下,argc的個數(shù)為1,即主程序的名字,argv[0]里就是主程序名字
如果要給主程序傳參,在主程序后面跟上參數(shù)就行了,假如程序名叫Send.exe,則使用如下方式調(diào)用:Send.exe arg1 arg2 arg
參數(shù)之間用空格隔開
如圖:
如果在開發(fā)環(huán)境里面調(diào)用,也可以在IDE里設(shè)置參數(shù),如VC6里面:
在工程--設(shè)置,選中調(diào)試選項(xiàng)卡,在應(yīng)用程序參數(shù)里面輸入?yún)?shù)即可,空格隔開多個參數(shù)
這就是遞歸調(diào)用
遞歸要兩個方面注意
一個是結(jié)束遞歸的條件,也就是當(dāng)滿足一個條件是,返回一個固定的值
一個是改變遞歸條件的語句。也就是不滿足條件的時候,調(diào)用自身,但是函數(shù)的參數(shù)要改變
如求n!就是階乘
int f(int n)
{
if(n==0)
return 0;
if(n==1) //這里是結(jié)束條件
return 1;
else
return n*f(n-1); //這里是改變條件
}
C語言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)際參數(shù)表)
對無參函數(shù)調(diào)用時則無實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構(gòu)造類型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫在被調(diào)用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調(diào)用,調(diào)用自定義函數(shù)fun,其中a,b為實(shí)際參數(shù),傳遞給被調(diào)用函數(shù)的輸入值
}
//?自定義函數(shù)fun
int?fun(int?x,?int?y)??//?函數(shù)首部
{??//?{}中的語言為函數(shù)體
return?xy???x?:?y;??//?返回x和y中較大的一個數(shù)
}
擴(kuò)展資料
C語言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題。但是C語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。
這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語句時,即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時,又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行。
參考資料:函數(shù)調(diào)用_百度百科