开篇
本题来源于《编程珠玑》第9章【代码调优】课后习题8。旨在实现一段使用哨兵找出数组中最大元素的逻辑代码。
题目描述
如何在程序中使用哨兵来找出数组中的最大元素?
思路分析
这个问题相对来说比较简单,以初始值作为哨兵,和后续的值进行比较及处理即可。
代码实现
#include <stdio.h>
// 找寻数组中的最大值
int findMax(int arr[], int size) {
// 使用第一个元素作为哨兵
int max = arr[0];
// 从数组第二个元素开始比较
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = { 5, 12, 7, 19, 22, 12 };
int size = sizeof(arr) / sizeof(arr[0]);
// 调用findMax找出数组最大元素
int max = findMax(arr, size);
printf("数组中最大元素为: %d\n", max);
return 0;
}
代码运行结果
注
以上便是本文的全部内容,感谢阅读!