你這個問題很典型,對一個數(shù)組中的所有元素進(jìn)行操作是很典型的一段代碼
成都創(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);
}