Menu
CoddyTech

回顾:用指针遍历数组

本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 11 课,共 63 课。

challenge icon

挑战

简单

编写一个 C 程序,实现一个使用指针运算和数组与指针等价关系来计算整数数组中所有元素之和的函数。你的程序应当:

  1. 创建一个名为 calculateSum 的函数,该函数接受两个参数:
    • 一个指向整数的指针(int *arr),表示数组
    • 一个整数(size),表示数组中的元素个数
  2. 在 calculateSum 函数中:
    • 将变量 sum 初始化为 0
    • 创建一个指针变量 ptr,并让它指向数组的开头
    • 使用循环通过指针运算遍历数组
    • 在每次迭代中,将 ptr 所指向的值加到 sum 上
    • 递增指针,移动到下一个元素
    • 返回计算出的总和
  3. 在 main 函数中:
    • 读取一个整数 n,表示数组的大小
    • 声明一个大小为 n 的整数数组
    • 从输入中读取 n 个整数并填入数组
    • 使用数组及其大小调用 calculateSum 函数
    • 按照以下格式打印结果:"Sum: [value]"

函数必须使用指针运算遍历数组,不要使用 arr[i] 这样的数组索引表示法。请改用指针解引用和递增操作来访问数组元素。

例如,如果输入为:

5
10 20 30 40 50

你的输出应为:

Sum: 150

这个挑战将测试你对以下内容的理解:函数如何接受作为指针参数传入的数组,如何使用指针运算高效地遍历数组,以及数组名作为参数传递给函数时如何自动转换为指针。

亲手试试

#include <stdio.h>

// TODO:在这里编写你的 calculateSum 函数

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // 读取数组元素
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO:调用 calculateSum 函数并保存结果
    
    // TODO:按 "Sum: [value]" 格式输出结果
    
    return 0;
}

逻辑与流程中的所有课

自己练习: C 在线编译器