打印设定的最小值和最大值之间的数字

问题描述 投票:0回答:1

我正在尝试创建一个接受设定的最小值和最大值的函数,然后打印出适合这些值之间的给定数组的数字。这是我的代码:

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()函数中起作用。它只是一直打印出所有值,而不是最小值和最大值之间的值。有什么想法吗?

c arrays numbers printf min
1个回答
0
投票

if (i_min < i_origArray[i] < i_max)可能不是您想要的。如果要检查范围,请使用以下内容:

if ((i_min < i_origArray[i]) && (i_origArray[I] < i_max))
© www.soinside.com 2019 - 2024. All rights reserved.