用指针求含有n个元素的整型数组的最大值和最小值
时间: 2023-04-26 14:00:27 浏览: 184
可以定义两个变量分别存储最大值和最小值,然后遍历整型数组,比较每个元素与当前最大值和最小值的大小关系,更新最大值和最小值即可。使用指针可以通过指针操作数组元素来实现。具体实现如下:
```c
void findMinMax(int* arr, int n, int* max, int* min) {
*max = *min = arr[]; // 初始化最大值和最小值为数组第一个元素
for (int i = 1; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i]; // 更新最大值
}
if (arr[i] < *min) {
*min = arr[i]; // 更新最小值
}
}
}
```
调用该函数时,需要传入整型数组的指针、数组元素个数、最大值和最小值的指针,函数执行完毕后,最大值和最小值的值会存储在对应的指针变量中。例如:
```c
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(int);
int max, min;
findMinMax(arr, n, &max, &min);
printf("Max: %d, Min: %d\n", max, min);
```
相关问题
c++引用传递求整型数组最大值和最小值
题目中给出的代码是使用C语言编写的,其中包含了两个函数,一个是求整型数组中的最大值的函数max,另一个是求整型数组中的最小值的函数min。这两个函数都采用的是引用传递的方式进行参数传递。
在函数max中,使用了三目运算符来比较a和b的大小,返回较大的值。而在函数min中,同样使用了三目运算符来比较a和b的大小,返回较小的值。
在主函数main中,先通过输入流cin输入两个整数a和b,然后定义了两个函数指针mmax和nmin,分别指向max和min函数。接着,通过解引用函数指针的方式,调用了mmax和nmin函数,并将返回的最大值和最小值分别赋给了maxnum和minnum变量。最后,通过输出流cout输出maxnum和minnum。
用c++引用传递求整型数组最大值和最小值
使用C语言中的引用传递,可以通过传递数组的指针来求解整型数组的最大值和最小值。可以定义两个函数,一个用来求最大值,一个用来求最小值。具体步骤如下:
1. 创建两个函数max和min,接受整型数组的指针和数组的长度作为参数。
2. 在max函数中,初始化一个变量max_num为数组的第一个元素,然后遍历数组中的每个元素,如果当前元素大于max_num,则将max_num更新为当前元素。
3. 在min函数中,初始化一个变量min_num为数组的第一个元素,然后遍历数组中的每个元素,如果当前元素小于min_num,则将min_num更新为当前元素。
4. 在主函数中,声明一个整型数组并初始化,然后分别调用max和min函数,将数组的指针和长度作为参数传递给这两个函数。
5. 最后,在主函数中输出最大值和最小值。
示例代码如下:
```
#include <iostream>
using namespace std;
void max(int *arr, int size) {
int max_num = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_num) {
max_num = arr[i];
}
}
cout << "最大值: " << max_num << endl;
}
void min(int *arr, int size) {
int min_num = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min_num) {
min_num = arr[i];
}
}
cout << "最小值: " << min_num << endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
max(arr, size);
min(arr, size);
return 0;
}
```
阅读全文