【发布时间】:2022-01-05 00:48:58
【问题描述】:
看来我的小数数组getMin 函数没有返回实际的最小值。我将它设计为也忽略-1。有任何想法吗?这是我如何在一个更大的项目中实现getMin 的示例函数。返回最好的是0.01
#include <stdio.h>
float getMin(float arr[10]) {
int i = 0;
float min;
//find first non-negative value
for (i; i < 10; i++) {
if (arr[i] != -1) {
min = arr[i];
goto done;
}
}
done:
for (i; i < 10 - i - 1; i++) {
if (arr[i] < min && arr[i] != -1) {
min = arr[i];
}
}
return min;
}
int main() {
float array[10] = { -1, -1, .03, .02, .01, -1, .05, .001, 5, 0.0125 };
printf("Hello World");
float min = getMin(array);
printf("min: %f\n", min);
return 0;
}
【问题讨论】:
-
for(i; i<10-i; i++)- 你为什么不去数组的末尾? -
哦,我写错了代码。项目中的一个使用 for(i; i
-
数组中的最后一个元素是`i == 9`。它是一个常数。从哪里开始并不重要。
-
但它不应该仍将 .001 显示为最小值吗?
-
如果没有正数会怎样?不需要2个循环。 goto 语句,即使可能,也不应该使用。
标签: arrays c function min minimum