📅  最后修改于: 2023-12-03 15:30:15.190000             🧑  作者: Mango
在本次C测验中的第一道问题,需要程序员完成的任务是关于数组与指针的练习。
请编写一个函数sum
,该函数的功能是返回数组中所有元素的总和。
函数定义如下:
int sum(int *arr, int len);
其中,arr
代表一个整数数组的指针,len
代表数组的长度。
对于该函数的实现,可以采用循环遍历数组的方式,将数组中的每个元素相加起来。具体实现如下:
int sum(int *arr, int len) {
int ret = 0, i;
for(i = 0; i < len; i++) {
ret += *(arr+i);
}
return ret;
}
上述代码中,用ret
变量来累加数组中的元素,循环遍历数组,并使用指针arr
来获取数组中每个元素的值。采用指针的方式可以提高程序的效率,避免使用下标索引的方式列举数组的元素。
下面是一个测试实例,用于检测程序的正确性。
#include <stdio.h>
int sum(int *arr, int len);
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int len = 5;
int ret = sum(arr, len);
printf("sum of array is: %d\n", ret);
return 0;
}
int sum(int *arr, int len) {
int ret = 0, i;
for(i = 0; i < len; i++) {
ret += *(arr+i);
}
return ret;
}
运行该程序,将输出sum of array is: 15
,证明该函数的实现是正确的。
通过本题,程序员可以锻炼对于数组、指针的熟练应用,提高C语言编程的能力。