Próbuję utworzyć funkcję, która zajmuje ustawione wartości min i maksymalne, a następnie wydrukuje liczby danej tablicy, która pasuje do tych wartości. Oto mój kod:

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;
}

Wzbudzę, aby dowiedzieć się, jak uzyskać pętlę do pracy w moich klamrach () funkcji. Po prostu ciągle drukuje wszystkie wartości, a nie między min i max. Jakieś pomysły?

0
Jedi21366 22 marzec 2020, 03:36

1 odpowiedź

Najlepsza odpowiedź

if (i_min < i_origArray[i] < i_max) Prawdopodobnie nie jest to, czego chcesz. Jeśli chcesz sprawdzić zakres, użyj następujących czynności:

if ((i_min < i_origArray[i]) && (i_origArray[I] < i_max))
0
jmq 22 marzec 2020, 00:50