#includestdio.h
10余年的鐘山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整鐘山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“鐘山網(wǎng)站設(shè)計”,“鐘山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
#define?MAX?40
int?count(int?score[],int?num);
int?read(int?score[]);
int?main()
{
int?score[MAX],count1,num,n;?//變量名不能和函數(shù)名重復?count變成count1
printf("請輸入同學們的成績,輸入-1表示輸入結(jié)束\n");
num=read(score);
n=num;
printf("一共有學生%d人\n",num);
count1=count(score,n);?//修改
printf("高于平均分的學生有%d人\n",count1);?//修改
return?0;
}
int?read(int?score[])
{
int?i,n=0;
for(i=0;i40;i++)
{
scanf("%d",score[i]);
if(score[i]0)
break;
else
n=n+1;
}
return?n;
}
int?count(int?score[],int?num)
{
int?i,count1=0;////變量名不能和函數(shù)名重復?count變成count1
float?ave=0;
for(i=0;inum;i++)
{
//if(score[i]0)?沒有必要檢查了
ave=ave+score[i];
/*
else
break;
*/
}
ave=ave/num;
for?(i=0;inum;i++)
{
if?(score[i]?ave)
count1=count1+1;?//修改
}
return?count1;?//修改
}
方法
有2
將該數(shù)組定義為全局變量,即:
int
g_arr;
void
fun()
{...}
void
main()
{...}
2.將該數(shù)組作為函數(shù)參數(shù)傳遞到自定義函數(shù)里,即:
void
fun(int
arr[])
{...}
void
main()
{
int
arr[10];
fun(arr);
}
函數(shù)不可以定義為數(shù)組,可以用函數(shù)指針來操作。
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。例如:double add(double a,double b){};double sub(double a,double b){};double mul(double a,double b){};double div1(double a,double b){};double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義2.函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。C在編譯時,每一個函數(shù)都有一個入口地址,該入口地址就是函數(shù)指針所指向的地址。有了指向函數(shù)的指針變量后,可用該指針變量調(diào)用函數(shù),就如同用指針變量可引用其他類型變量一樣,在這些概念上是大體一致的。函數(shù)指針有兩個用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。3.函數(shù)指針的聲明方法為:返回值類型( * 指針變量名) (形參列表);“返回值類型”說明函數(shù)的返回類型,“( * 指針變量名)”中的括號不能省,括號改變了運算符的優(yōu)先級。若省略整體則成為一個函數(shù)說明,說明了一個返回的數(shù)據(jù)類型是指針的函數(shù),后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。例如:int func(int x); /* 聲明一個函數(shù) */int (*f) (int x); /* 聲明一個函數(shù)指針 */f = func; /* 將func函數(shù)的首地址賦給指針f */或者使用下面的方法將函數(shù)地址賦給函數(shù)指針:f = func;賦值時函數(shù)func不帶括號,也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。例子:
#includestdio.hint max(int x,int y){return (xy? x:y);}int main(){ int (*ptr)(int, int); int a, b, c; ptr = max; scanf("%d%d", a, b); c = (*ptr)(a,b); printf("a=%d, b=%d, max=%d", a, b, c); return 0;}
函數(shù)不可以定義為數(shù)組,可以用函數(shù)指針來操作。
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。
例如:
double add(double a,double b){}
double sub(double a,double b){}
double mul(double a,double b){}
double div1(double a,double b){}
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義。
2.函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。
C在編譯時,每一個函數(shù)都有一個入口地址,該入口地址就是函數(shù)指針所指向的地址。有了指向函數(shù)的指針變量后,可用該指針變量調(diào)用函數(shù)。
擴展資料:
指針函數(shù)和函數(shù)指針的區(qū)別:
這兩個概念都是簡稱,指針函數(shù)是指返回值是指針的函數(shù),即本質(zhì)是一個函數(shù)。我們知道函數(shù)都有返回類型(如果不返回值,則為無值型),只不過指針函數(shù)返回類型是某一類型的指針。其定義格式如下所示:返回類型標識符*函數(shù)名稱。
返回類型可以是任何基本類型和復合類型。返回指針的函數(shù)的用途十分廣泛。事實上,每一個函數(shù),即使它不帶有返回某種類型的指針,它本身都有一個入口地址,該地址相當于一個指針。比如函數(shù)返回一個整型值,實際上也相當于返回一個指針變量的值,不過這時的變量是函數(shù)本身而已,而整個函數(shù)相當于一個“變量”。
參考資料:百度百科 -?函數(shù)指針