查找数组中的最大值和最小值 (版本一)

本程序从给定的数组中找出最大值和最小值。

int max, min;  // 定义全局变量

void max_min_value(int array[], int n) {
    int *p, *array_end; 
    array_end = array + n;  // 指向数组最后一个元素的下一个地址

    max = min = array[0];  // 初始化最大值和最小值为数组第一个元素

    for (p = array + 1; p < array_end; p++) {  // 从数组第二个元素开始遍历
        if (*p > max) {
            max = *p;
        } else if (*p < min) {
            min = *p;
        }
    }
}

代码说明:

  1. 程序使用全局变量 maxmin 存储最大值和最小值。
  2. max_min_value 函数接受一个整数数组和数组长度作为参数。
  3. 使用指针 p 遍历数组,并使用 *p 访问指针指向的数组元素。
  4. 通过比较 *p 与当前 maxmin 的值,更新最大值和最小值。

注意:

  • 本例中使用了全局变量 maxmin,也可以在函数内部定义为局部变量,并通过返回值或指针传递给其他函数。
  • 可以直接使用 max = min = array[0] 初始化最大值和最小值,无需单独赋值。

示例:

假设 array = {5, 2, 7, 1, 9},则调用 max_min_value(array, 5) 后,max 的值为 9,min 的值为 1。