我正在尝试创建一个函数,该函数接受设定的最小值和最大值,然后打印出适合这些值之间的给定数组的数字。这是我的代码:
void clampNums( const double* i_origArray, int i_size,
double i_min, double i_max )
{
printf("clampNums(): Start\n");
for (int i=0; i<i_size; i++)
{
if (i_min < i_origArray[i] < i_max)
{
printf("%f ", i_origArray[i]);
}
}
printf("clampNums(): End\n");
}
int main()
{
int size = 6;
double cMin = 0.0, cMax = 10.0;
double arr[] = { 1.33, -0.06, 20.54, -4.49, -39.0, 0.000001 };
printf("Clamping min = %f, max = %f\n", cMin, cMax);
printf("Original array:\n\t");
for (int i=0; i<size; i++)
{
printf("%f, ", arr[i]);
}
printf("\n");
clampNums(arr, size, cMin, cMax );
return 0;
}
我正在努力弄清楚如何让我的for循环在ClampNums()函数中工作。它只是一直打印出所有值,而不是最小值和最大值之间的值。有什么想法吗?
答案 0 :(得分:0)
if (i_min < i_origArray[i] < i_max)
可能不是您想要的。如果要检查范围,请使用以下内容:
if ((i_min < i_origArray[i]) && (i_origArray[I] < i_max))