📜  C测验– 104 |问题1(1)

📅  最后修改于: 2023-12-03 15:30:15.190000             🧑  作者: Mango

C测验-104 | 问题1

在本次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语言编程的能力。