logo

使用指针在C语言中查找数组中的最大值和最小值

作者:沙与沫2024.01.18 07:33浏览量:91

简介:通过指针遍历数组,使用比较运算符找出数组中的最大值和最小值。

在C语言中,你可以使用指针来查找数组中的最大值和最小值。以下是一个简单的示例:

  1. #include <stdio.h>
  2. void findMinMax(int *arr, int n, int *min, int *max) {
  3. *min = *max = *arr;
  4. for(int i = 1; i < n; i++) {
  5. if(*arr > *(arr+i)) {
  6. *max = *(arr+i);
  7. } else if(*arr < *(arr+i)) {
  8. *min = *(arr+i);
  9. }
  10. }
  11. }
  12. int main() {
  13. int arr[] = {5, 10, 3, 8, 2, 1, 6};
  14. int n = sizeof(arr)/sizeof(arr[0]);
  15. int min, max;
  16. findMinMax(arr, n, &min, &max);
  17. printf("最小值是:%d,最大值是:%d
  18. ", min, max);
  19. return 0;
  20. }

这个程序定义了一个名为findMinMax的函数,该函数接收一个指向整数的指针(也就是我们的数组)、数组的长度以及两个指向整数的指针(用于存储最小值和最大值)。在函数内部,我们首先假设数组的第一个元素是最小值和最大值,然后遍历数组的其余部分。如果发现一个元素比当前的最大值还要大,我们就更新最大值。如果发现一个元素比当前的最小值还要小,我们就更新最小值。最后,我们在主函数中调用findMinMax函数,并打印出最小值和最大值。
请注意,这个程序假设数组至少有一个元素。如果数组是空的,那么这个程序可能会产生未定义的行为。另外,这个程序也假设数组中的所有元素都是整数。如果数组中有非整数元素,那么这个程序可能无法正确地找到最小值和最大值。如果你需要处理可能为空的数组或者可能包含非整数元素的数组,那么你需要在使用这个程序之前添加一些额外的检查。

相关文章推荐

发表评论

活动