数组的最大值

Max value of an array

本文关键字:最大值 数组      更新时间:2023-10-16

如何使用指针找到数组的最大值?我必须使用 cpp+header 组合,并且不允许使用 []。这是代码的一部分。

主.cpp

const int NUMBERS = 30;
int main() {
int array[NUMBERS] = { 1, 3, 6, 9 };
sort(array, array + NUMBERS);
...
std::cout << max_v1(array, NUMBERS) << std::endl;
std::cout << max_v2(array, array + NUMBERS) << std::endl;
}

我得到了数组.cpp在它下面:

int max_v1(int *ptr, int size)
{
    //TODO
}
int max_v2(int *firstptr, int *lastptr)
{
    //TODO
}
这里有

一个小图表来帮助你。

指向第一个元素的数组指针:

|1|3|6|9|
 ^
 ptr

取消引用以获取值:

*ptr == 1

数组指针 + 大小(点超过最后一个元素(:

|1|3|6|9|
         ^
         ptr + size

指向最后一个元素的数组指针:

|1|3|6|9|
       ^
       ptr + size - 1

取消引用以获取值:

*(ptr + size - 1) == 9

因此,函数 1 应如下所示:

int max_v1(int *ptr, int size)
{
    return *(ptr + size - 1);
}

你能自己做第二个功能吗?

附言:确保您作为第二个参数传递的 NUMBERS 等于数组的实际大小,否则它不起作用(出于上面证明的明显原因(