你这个问题很典型,对一个数组中的所有元素进行操作是很典型的一段代码
成都创新互联公司专注于西乌珠穆沁企业网站建设,自适应网站建设,商城网站开发。西乌珠穆沁网站建设公司,为西乌珠穆沁等地区提供建站服务。全流程按需定制网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
C语言中,数组包含类型和长度两个要素,根据数组名可以推断出长度,但是C语言有一个特殊之处:当你把数组传递给参数的时候,就会隐式转化为指针,从而失去长度的信息,所以一般情况下,处理数组的函数都要传入数组本身以及一个长度,代码如下:
#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;
}
调用时:
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);
}
注意定义的函数int fun1(int a[N],int i),在调用函数的时候语法是sum=fun1(int a[N],int i);错误在于调用函数时()内的参数应该和定义时一样
要引用数组宏的每个元素做些计算,可以将数组及数组的长度作为参数同时传递给调用函数就可以实现了,比如:
#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);
}