查找数组中的最大值和最小值 (版本一)
本程序从给定的数组中找出最大值和最小值。
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;
}
}
}
代码说明:
- 程序使用全局变量
max
和min
存储最大值和最小值。 max_min_value
函数接受一个整数数组和数组长度作为参数。- 使用指针
p
遍历数组,并使用访问指针指向的数组元素。
- 通过比较
与当前
max
和min
的值,更新最大值和最小值。
注意:
- 本例中使用了全局变量
max
和min
,也可以在函数内部定义为局部变量,并通过返回值或指针传递给其他函数。 - 可以直接使用
max = min = array[0]
初始化最大值和最小值,无需单独赋值。
示例:
假设 array = {5, 2, 7, 1, 9}
,则调用 max_min_value(array, 5)
后,max
的值为 9,min
的值为 1。
暂无评论