你這個問題很典型,對一個數(shù)組中的所有元素進行操作是很典型的一段代碼
成都創(chuàng)新互聯(lián)公司專注于西烏珠穆沁企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站開發(fā)。西烏珠穆沁網(wǎng)站建設(shè)公司,為西烏珠穆沁等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
C語言中,數(shù)組包含類型和長度兩個要素,根據(jù)數(shù)組名可以推斷出長度,但是C語言有一個特殊之處:當(dāng)你把數(shù)組傳遞給參數(shù)的時候,就會隱式轉(zhuǎn)化為指針,從而失去長度的信息,所以一般情況下,處理數(shù)組的函數(shù)都要傳入數(shù)組本身以及一個長度,代碼如下:
#include
stdio.h
#include
math.h
#define
SIZE
10
double
sum(double
a[],
int
size)
{
int
i;
double
result
=
0;
for
(i
=
0;
i
size;
i++)
{
result
+=
log(a[i]);
}
return
result;
}
int
main()
{
double
a[SIZE];
int
i;
for
(i
=
0;
i
SIZE;
i++)
{
scanf("%lf",
a[i]);
}
double
s
=
sum(a,
SIZE);
printf("%lf",
s);
return
0;
}
調(diào)用時:
sum=fun1(a[N]);
printf("sum=%d\n",sum);
定義中:
int fun1(int a[N],int i)
{
int s=0;
for(i=0;iN;i++)
s=s+a[i];
return(s);
}
注意定義的函數(shù)int fun1(int a[N],int i),在調(diào)用函數(shù)的時候語法是sum=fun1(int a[N],int i);錯誤在于調(diào)用函數(shù)時()內(nèi)的參數(shù)應(yīng)該和定義時一樣
要引用數(shù)組宏的每個元素做些計算,可以將數(shù)組及數(shù)組的長度作為參數(shù)同時傳遞給調(diào)用函數(shù)就可以實現(xiàn)了,比如:
#includestdio.h
int sum(int a[], int size)
{
int i, result = 0;
for (i = 0; i size; i++) {
result += a[i];
}
return result;
}
main() {
int a[8];
int s,i;
for (i = 0; i 8; i++) {
scanf("%d", a[i]);
}
s = sum(a, 8);
printf("%d", s);
}
新聞名稱:c語言構(gòu)建函數(shù)用引用數(shù)組 c語言函數(shù)引用數(shù)組做參數(shù)
標(biāo)題鏈接:http://muchs.cn/article36/dosscsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、微信公眾號、網(wǎng)站收錄、營銷型網(wǎng)站建設(shè)、企業(yè)建站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)