Menu
CoddyTech

回顾:函数指针参数

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

challenge icon

挑战

简单

编写一个 C 程序,使用指针参数实现一个函数,用于查找数组中的最小值和最大值。你的程序应该:

  1. 创建一个名为 findMinMax 的函数,该函数接受 4 个参数:
    • 一个整数数组
    • 数组的大小
    • 一个指向整数的指针,用于存储最小值
    • 一个指向整数的指针,用于存储最大值
  2. 在 findMinMax 函数中,遍历数组以查找最小值和最大值
  3. 使用解引用运算符,将最小值存储到 min 指针所指向的地址中
  4. 使用解引用运算符,将最大值存储到 max 指针所指向的地址中
  5. 在 main 函数中,读取一个整数 n,表示数组中的元素个数
  6. 读取 n 个整数值,并将它们存储在一个数组中
  7. 声明两个整数变量 minValue 和 maxValue,用于存储结果
  8. 调用 findMinMax 函数,传入数组、数组大小,以及 minValue 和 maxValue 的地址
  9. 按照以下格式输出结果:Minimum: [value] 和 Maximum: [value]

例如,如果输入是:

5
12 7 23 4 18

你的输出应该是:

Minimum: 4
Maximum: 23

这个挑战展示了使用多个指针参数的强大技巧:通过一次函数调用返回多个值,让函数能够修改调用它的函数作用域中的变量。

亲手试试

#include <stdio.h>

// TODO:在这里编写 findMinMax 函数

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO:在这里调用 findMinMax 函数
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

逻辑与流程中的所有课

自己练习: C 在线编译器