数组并将其传递给函数

时间:2017-02-12 17:48:59

标签: c arrays

#include <stdio.h>
#include <stdbool.h>

#define K 4
#define n 16


bool search(int *t, int size, int val)
{
    int nb_element_per_stage;
    if (val < t[0] || val > t[size - 1])
    {
        return false;
    }

    int inf = 0;
    int sup = size - 1;

    if (sup - inf + 1 > K)
    {
        nb_element_per_stage = (sup - inf + 1) / K;
        sup = (sup - inf + 1) / K - 1;

        while (inf < sup - inf + 1)
        {
            if (val >= t[inf] && val <= t[sup])
            {
                return search(t, sup - inf + 1, val);
            }
            else
            {
                inf = sup + 1;
                sup = sup + nb_element_per_stage;
            }
        }
        if (inf == sup - inf + 1)
            return false;
        else
        {
            int i = 0;
            for (i = 0; i < sup - inf + 1; i++)
            {
                if (val == t[i])
                {
                    return true;
                }
            }
            return false;
        }
    }

问题在于t[inf]t[sup]始终指向较大数组的supinf的前两个值。

如何正确传递新大小的数组?旧版本的t[0]也是新版本的t[0]吗?

0 个答案:

没有答案