gpt4 book ai didi

c++ - 当数组的第一个元素最高时,Findmax() 方法返回第二高的值

转载 作者:行者123 更新时间:2023-11-28 04:04:59 26 4
gpt4 key购买 nike

此 findMax 函数仅在数组位于第一个索引以外的某个索引处时才返回数组中的最大值。我不明白为什么,因为我的具有几乎相同代码的 findMin 函数工作得非常好。

void findMax(int array[5])
{
maximum = array;
for (i = 0; i < 5; i++)
{
if (*(array+i) > *maximum)
*maximum = *(array+i);
}
cout<<"Maximum element in the array is "<< *maximum << "\n" ;
}

这是我的 findMin 乐趣,运行良好。

void findMin(int array[5])
{
minimum = array;
for (i = 0; i < 5; i++)
{
if (*(array+i) < *minimum)
*minimum = *(array+i);
}
cout<<"Minimum element in the array is "<< *minimum <<"\n";
}

最佳答案

其他答案已经描述了如何在 C++ 中更干净地执行此操作。但要指出实际的错误:它在这一行中。

    *maximum = *(array+i);

您并没有将maximum 指针重新分配给指向 最大元素,而是您从不更改指针,而是更改数组中的值maximum 指向(即 array[0])。你的意思是:

    maximum = array + i;

同样的问题也存在于您的 findMin 函数中。

关于c++ - 当数组的第一个元素最高时,Findmax() 方法返回第二高的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58889987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com