gpt4 book ai didi

c++ - C/C++中数组中最小值的地址

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:02 25 4
gpt4 key购买 nike

学习 C/C++ 仅一周时间。我有一个函数,它接受一个指向数组的指针作为参数。在函数内操作此输入数组会导致另一个(全局定义的)数组发生变化。我需要在这个(全局定义的) float 组中找到并返回最小值的地址。在 C++ 中,我可以使用 std::min_element() 相对轻松地完成此操作,因为它会返回一个迭代器。有什么办法可以在 C 中做到这一点?我可以编写一个循环来查找数组中的最小值,但不确定如何访问它的地址?这是(伪)代码。

globalArray[100] = {0}
float *DoSomething(float *array)
{
if (conditionMet == 1)
{ Do something to array that modifies globalArray;}
float min;
min = globalArray[0];
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min)
min = globalArray[i];
}
return &min;
}

最佳答案

您需要保留一个额外的变量来跟踪索引。

min = globalArray[0];
int minIndex = 0;
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min) {
min = globalArray[i];
minIndex = i;
}
}
return &globalArray[minIndex];

或者,您可以使用额外的变量来跟踪指针。

min = globalArray[0];
float* minPointer = globalArray;
for (int i = 0; i <100; i++)
{
if (globalArray[i] < min) {
min = globalArray[i];
minPointer = globalArray + i;
}
}
return minPointer;

关于c++ - C/C++中数组中最小值的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45557285/

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