利用指针找最大值pta
时间: 2023-11-02 08:08:18 浏览: 75
可以通过循环遍历数组,利用指针找到数组中的最大值。代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[] = { 1, 5, 3, 8, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
int* ptr = arr;
int max = *ptr;
for (int i = 0; i < n; i++) {
if (*(ptr + i) > max) {
max = *(ptr + i);
}
}
cout << "The max value in the array is: " << max << endl;
return 0;
}
```
在上面的代码中,我们定义了一个整型数组 `arr`,并且用指针 `ptr` 指向数组的首地址。然后我们用一个 `for` 循环遍历数组,逐个比较数组元素的大小,找到最大值。在比较大小的过程中,我们使用了指针的加法运算符 `+`,来访问数组的不同元素。最后,我们输出数组中的最大值。
相关问题
利用指针找最大值
好的,可以为您提供以下代码示例:
```
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40, 50};
int n = sizeof(arr)/sizeof(arr[0]);
int *ptr = arr;
int max = *ptr;
for(int i=0; i<n; i++) {
if(*(ptr+i) > max) {
max = *(ptr+i);
}
}
printf("Maximum value in the array is: %d", max);
return 0;
}
```
在这个示例中,我们先定义一个整数数组 `arr`,接下来计算数组的长度 `n`。然后我们定义一个指向数组第一个元素的指针 `ptr`,并将其初始化为 `arr`。接着我们定义一个整数变量 `max`,并将其初始化为 `*ptr`。然后我们使用 for 循环遍历整个数组,比较每个元素与 `max` 的大小关系,如果当前元素大于 `max`,则将 `max` 更新为当前元素。最后输出 `max` 即为数组中的最大值。
希望能够帮到您!
利用指针找最大值最小值
可以通过遍历数组来寻找最大值最小值,同时记录最大值和最小值的下标,最后返回这两个下标对应的值即可。
以下是一个示例代码:
```c
#include <stdio.h>
void find_min_max(int *arr, int size, int *min_idx, int *max_idx) {
*min_idx = 0; // 初始化最小值和最大值下标
*max_idx = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < arr[*min_idx]) { // 如果当前元素小于最小值
*min_idx = i; // 更新最小值下标
}
if (arr[i] > arr[*max_idx]) { // 如果当前元素大于最大值
*max_idx = i; // 更新最大值下标
}
}
}
int main() {
int arr[] = {4, 2, 7, 1, 9, 5};
int size = sizeof(arr) / sizeof(int);
int min_idx, max_idx;
find_min_max(arr, size, &min_idx, &max_idx);
printf("最小值是:%d,最大值是:%d\n", arr[min_idx], arr[max_idx]);
return 0;
}
```
在上面的代码中,`find_min_max` 函数接收一个整型数组、数组大小、以及两个指向整型变量的指针,用于存储最小值和最大值的下标。在函数中,我们先初始化最小值和最大值的下标都为 0,然后从数组的第二个元素开始遍历数组,如果当前元素小于最小值,则更新最小值的下标,如果当前元素大于最大值,则更新最大值的下标。最后,函数返回时,通过指针将最小值和最大值的下标传递给调用函数的地方。
在 `main` 函数中,我们定义了一个整型数组,然后调用 `find_min_max` 函数来寻找最小值和最大值的下标,并将这两个下标对应的值打印出来。